ReactJS - 在componentDidMount中调度并在渲染中使用Redux prop

时间:2018-06-16 14:54:38

标签: reactjs redux react-redux

«大家好!»

componentDidMount中,我调度一个更改我的redux prop id的动作,但在渲染时,redux状态的prop id为null。

关于如何解决的任何想法?

componentDidMount() {
    const{match:{params:{roomId}}, getItem, getDirectInfo, getIndirectInfo, getType} = this.props;
    if(roomId !== undefined) {
      const type = getType(roomId);
      if(type.data === 'DIRECT') getDirectInfo(roomId).then(roomId => getInfo(roomId));
      else if(type.data === 'INDIRECT') getIndirectInfo(roomId).then(roomId => getInfo(roomId));
    }
 }

getInfo更改prop“id”的值,但在渲染时它为null

2 个答案:

答案 0 :(得分:0)

它可能为null,因为您在reducer中将其初始化为null,并且在调用render()时尚未调用调度。

答案 1 :(得分:0)

我将假设问题是一个错误,因为您尝试使用该ID但未定义。

在反应生命周期中,render()函数在componentDidMount()之前调用。这意味着你应该能够处理渲染时未定义的id,我建议显示某种加载指示符。

由于您没有显示重现此内容的完整示例,因此还可能存在其他问题,请确保减速器实际工作且组件已正确连接。