我有以下动作创建者:
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}
}
问题是在appendItem完成之前运行scrollToNextItem
次,滚动位置最终不正确.我可以通过添加setTimeout
来证明这一点,使脚本的执行在运行scrollToNextItem
之前等待下一个滴答声:
export function scrolltoNextItem(item) {
return (dispatch, getState) => {
dispatch(appendItem(Item));
setTimeout(() => {
dispatch(
scrollToNextIndex(
getState().items.length - 1
)
)
}, 0);
}
}
我怎么能等到appendItem
个动作结束呢?在standard react land中,我只使用setState
回调:
this.setState({something: 'some thing'}, () => {
console.log('something is set');
});
但dispatch
不提供任何回调功能.