【发布时间】:2020-04-24 21:57:29
【问题描述】:
在第一次加载后调用 saga 时,它可以正常工作。 但是当在 saga 上执行两次相同的操作时,该操作被调度,但 saga 从未收到它。
useEffect(() => {
if (show) {
updateTitle(message.title);
if (!status || status === Status.Initiate) {
createStatus();
}
}
return () => {
if (!show) {
cleanup();
}
};
}, [status]);
【问题讨论】:
-
如果第一次调用后status变量没有变化,那么作为它的一个依赖,useEffect不会被触发。见here
-
updateTitle()做什么?它会更新该州的哪个部分? -
@BenSmith
useEffect正在被触发,实际上我可以看到在 redux 中调用了动作函数,除了在调度动作后没有任何事情发生。 dispatch 和 saga 之间缺少通信。 @wentjunupdateTitle更新状态的一些不同部分。 -
我建议将您的 saga 和 reducer 代码添加到问题中。
标签: reactjs typescript react-redux react-hooks redux-saga