Saga事件频道未发出回调

时间:2019-02-21 06:11:52

标签: reactjs typescript react-redux redux-saga

学习Saga事件频道以收听自定义事件,并且无法解决此问题。

问题: 调用

时,不会从root函数调用startlistner()函数
const channel = yield call(startlistner);

完整代码

import { eventChannel } from "redux-saga";
import { take, fork, call } from "@redux-saga/core/effects";

export default function handleclick() {
root().next();
}

function* root() {
const channel = yield call(startlistner);
while (true) {
const { data } = yield take(channel);
console.log("while");
 }
}

function startlistner() {
console.log("da");
const channel = eventChannel(emmiter => {
emmiter({ data: null });
return () => {};
});
}

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

  

Saga事件频道未发出回调

在您的startlistner()中,您没有返回事件频道。

function startlistner() {
  const channel = eventChannel(emmiter => {
    emmiter({ data: null }); // for emitting action
    return () => {};         // for unsubscribe
  });

  return channel;            // return event channel to caller.
}