调度两个同步操作

时间:2018-08-31 09:37:25

标签: redux

我的用例包括从递归函数(if else构造)中分派两个动作,if部分在数组中添加一行(这是我的应用程序的状态),else部分添加另一行并需要访问数组的长度,然后调用函数本身。我在这里看到的是,在分派第一个操作后,数组的长度保持不变,因此对自身的调用未获得该长度的实际值。

2 个答案:

答案 0 :(得分:1)

我的假设是,您正在尝试在组件中进行第二次检查/调用之后进行第二次检查/调用。组件必须等待下一个渲染中的新道具。您应该将自己的逻辑付诸行动。这只是一个猜测,而没有这个问题的更多细节。这是一个示例:

const myAction = (stuff) => {
  return (dispatch, getState) => {
    let oldLength = getState().myState.stuff.length
    dispatch(doStuffToStuff(stuff))
    let newLength = getState().myState.stuff.length
    dispatch(moreStuffToLength(newLength))
  }
}

答案 1 :(得分:0)

感谢已解决此问题。每次调度后,如果状态发生变化,则需要通过ysing getState()来访问新状态。