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