学习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 () => {};
});
}
感谢您提供的任何帮助。
答案 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.
}