当在第一次加载后对某个操作调用saga时,它工作正常。但是当同一个动作在传奇上执行两次时,该动作被发送,但传奇从未收到。
useEffect(() => {
if (show) {
updateTitle(message.title);
if (!status || status === Status.Initiate) {
createStatus();
}
}
return () => {
if (!show) {
cleanup();
}
};
}, [status]);
下面的过程解决了我的问题。
事实证明,在运行时,如果某个传奇未能执行,则该传奇将不再被调用,这意味着如果为该传奇生成了任何操作,它将被忽略。
要检查传奇在运行时是否失败,可以将传奇的主体封装在try-catch块中。
function* failingSaga() {
try {
// saga-body
} catch(e) {
console.log(e);
}
}
这将有助于了解异常是什么。