reactjs - 第二次调度的相同动作不会调用 saga,而在第一次调度时它会正确调用
问题描述
在第一次加载后调用 saga 时,它可以正常工作。但是当在 saga 上执行两次相同的操作时,该操作被调度,但 saga 从未收到它。
useEffect(() => {
if (show) {
updateTitle(message.title);
if (!status || status === Status.Initiate) {
createStatus();
}
}
return () => {
if (!show) {
cleanup();
}
};
}, [status]);
解决方案
以下过程解决了我的问题。
事实证明,在运行时,如果某个 saga 无法执行,则该 saga 将不再被调用,这意味着如果为该 saga 生成任何操作,它就会被忽略。
要检查 saga 在运行时是否失败,您可以将 saga 的主体包装在 try catch 块中。
function* failingSaga() {
try {
// saga-body
} catch(e) {
console.log(e);
}
}
这将有助于了解异常是什么。
推荐阅读
- javascript - 更改属性时选择子项的子项
- python - Python中的Unpivot数据框-'builtin_function_or_method'对象没有属性'insert'
- python - TensorFlow 保存和恢复训练好的 CNN 模型不起作用
- c# - Microsoft.Web.Administration 使用特定帐户连接到服务器
- javascript - 电子应用程序关闭时如何清理 pouchdb
- python - 在表列中查找特定类(python、lxml)
- spring-boot - Spring工具套件JDK 9问题
- jsf - 由于不受支持的 aria-label 属性,JSF 数据表不符合 WCAG
- javascript - Ajax url 未定义
- xamarin - 如何从 Xamarin 中的 ViewModel 创建警报弹出窗口?