Получение этой ошибки: TypeError: Невозможно прочитать свойство 'setMaxNumberPointsPerLink' из null - PullRequest
0 голосов
/ 21 сентября 2018

Я использую эту библиотеку для диаграмм.

У меня есть свой код в 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
  }
}
...