redux-saga cancel effect trigger error "is already running" 当它取消时。或者如何从控制台中删除此错误?

redux-saga cancel effect trigger error "is already running" while it does cancel. Or How to remove this error from the console?

几周以来我一直在努力理解为什么我的 yield cancel 在我尝试 运行 我的根传奇中的 cancel 效果时抛出错误:

export function* loginData() {
  const watcher = yield fork(getLoginWatcher);
  yield take(LOCATION_CHANGE);
  yield cancel(watcher);
}

控制台错误:

utils.js:202 uncaught at getLogin Generator is already running"

如果我删除取消,我的 saga 不会被取消。这就像同时工作和抛出错误。

这个错误真的让我很恼火,看起来我的应用程序有问题。

执行环境:

有没有人知道 redux-saga/effects proc 如何处理它的 cancel 效果以及 如何 已经 运行ning 产生错误。

我认为造成这种情况的原因可能不是描述中所述的取消效果。我尝试使用 react-boilerplate 独立完成类似的登录过程,发现很多其他示例使用的方法比最新的样板代码更旧,所以一直在解决这些问题,我也得到了这个确切的错误,从调用堆栈似乎来自取消效果。 然而,当阅读与此处发布的相同问题 https://github.com/react-boilerplate/react-boilerplate/issues/1281 时,有人建议这实际上是一个错误,因为 'forwardTo' 在没有使用

的情况下被调用

yield call (forwardTo, params)

一旦我将 sagas 中的调用更改为此,错误就消失了。我认为这是解决问题的方法。其他人似乎同意 github 问题页面。