反应组件"有时"没找到道具

时间:2017-02-07 21:24:51

标签: reactjs react-redux

这是一个非常奇怪的问题,想看看是否有其他人经历过它。

有时候,我的反应成分并没有找到道具的属性。我有时说,因为有时候页面渲染得很好。其他时候,它没有找到道具,如果我刷新它两次左右,它就会开始工作。

我认为问题可能出在捆绑和缩小的JS文件上,所以我切换到了WebPack Dev服务器即时服务的文件,我遇到了同样的问题。

很难看出导致问题的是什么,因为它是间歇性的。为什么在一个案例中失败然后一旦刷新页面几次,它开始工作?

我不认为这很重要,但我正在访问对象的属性,如下所示:

<MyComponent name={this.props.account.accountHolder.firstName} />

如果我在收到错误时调试它,我会看到firstName是undefined。刷新页面几次,一切正常。

知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

你似乎在与种族条件作斗争。

案例1(一切顺利):

  1. 您的应用已加载
  2. 您的ajax请求已发送
  3. 返回您的ajax请求,并将数据插入redux
  4. 您的应用呈现方法称为
  5. 利润
  6. 案例2:

    1. 您的应用已加载
    2. 您的ajax请求已发送
    3. 您的应用呈现方法称为
    4. 过时的<!/ LI>
    5. 返回您的ajax请求,并将数据插入redux
    6. 因此,解决方案在某种程度上取决于您的reducer的状态以及您的预期行为,但我建议,在您的组件上执行一些验证数据实际存在,如果它没有显示其他内容(null,加载微调器) ,错误信息,w / e),直到实际填充了正确的道具并且您可以显示子组件。