Я использую эту библиотеку для диаграмм.
У меня есть свой код в componentWillMount, например,
class FlowDiagramEngine extends Component {
constructor(props) {
super(props);
this.flowJson = this.props.flowDiagramData;
this.state = {};
}
componentWillMount() {
console.log("this.flowJson :"+this.flowJson); // this is empty
var engine = ...
engine.setDiagramModel(model);
.... all code to construct diagram
this.setState({engine: engine});
}
render() {
return (
<div>
<FlowDiagramWidget className="srd-demo-canvas" {...this.state} />
</div>
)
}
}
FlowDiagramWidget
class FlowDiagramWidget extends Component {
render() {
return (
<div>
<Grid container
justify="space-between"
alignItems="center">
<DiagramWidget className="srd-demo-canvas" diagramEngine={this.props.engine} />
</Grid>
</div>
)
}
}
export default FlowDiagramWidget
Я хочу, чтобы мои реквизиты Redux были в componentWillMount, но во время исключения метода жизненного цикла componentWillMount асинхронная опора пуста.Реквизит редукса правильно инициализируется в конструкторе.
Всякий раз, когда я меняю componentWillMount на componentDidMount, я получаю следующую ошибку.Почему это может произойти?
TypeError: Cannot read property 'setMaxNumberPointsPerLink' of null
at DiagramWidget.render (main.js:1)
at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (ReactCompositeComponent.js:796)
at ReactCompositeComponentWrapper._renderValidatedComponent (ReactCompositeComponent.js:819)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:359)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:255)
at Object.mountComponent (ReactReconciler.js:43)
at ReactDOMComponent.mountChildren (ReactMultiChild.js:234)
at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:701)
at ReactDOMComponent.mountComponent (ReactDOMComponent.js:520)
at Object.mountComponent (ReactReconciler.js:43)
Редактировать: у меня это в родительском контейнере:
function mapStateToProps(state, ownProps) {
return {
flowDiagramData: state.appReducer.flowDiagramData
}
}