React / Redux应用程序中的执行顺序问题

时间:2017-08-21 22:27:23

标签: reactjs redux react-redux

我有一个React / Redux应用程序,它具有日期选择器。

以下是我的代码的简化版本:

handleChangeDate(date) {

   // First, I set the new date in my redux store
   this.props.actions.setDate(date);

   // Check some condition
   if(a !== b) {

      // I then call a callback function that is passed as a prop from the parent component
      return this.props.someCallBackFunction();
   }

}

以下是发生的事情:

  • 最初一切正常
  • 一旦我设置了新日期,someCallBackFunction()似乎首先触发,它从商店中提取活动日期并进行API调用。但由于日期尚未改变,我得到的数据与我发起日期更改之前的数据相同
  • 当我再次更改日期时,正如我上面所描述的那样发生了同样的事情,但它现在使用了上一步的日期。

换句话说,执行顺序是反向的,所以我总是得到我在上一个操作中设置的日期的数据集。

知道可能导致这种情况的原因以及如何解决这个问题?

P.S。回调函数从redux商店获取活动日期,这就是我没有传递它的原因。我喜欢使用redux存储作为单一事实来源的想法,但我不知何故需要修复执行顺序问题。

1 个答案:

答案 0 :(得分:0)

如果是这种情况,那么您似乎不应该处理此处理程序内部的回调。您是否考虑过使用生命周期方法componentWillUpdate()

看看这里的前几个例子,他们可能会有所帮助。

https://developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/tapping_into_componentwillupdate.html