take(eventChannel)采取所有动作而不是发出的结果

时间:2018-12-18 08:04:27

标签: reactjs redux redux-saga

我试图使用redux-saga中的eventchannel订阅firebase onAuthStateChanged,我设法放置一个显示状态的沙箱

https://codesandbox.io/s/42kwzv2324

sagas / sagas.js中的第71和72行,我记录了 take 的结果,发现所有的操作都被记录下来,而不是事件通道中发出的用户

我在做什么错?我无法调试,因为未击到 onAuthStateChanged 内的日志。

1 个答案:

答案 0 :(得分:0)

沙箱中的主要问题是您错误地导入了eventChannel。

更改:

import eventChannel from "redux-saga";

收件人:

import {eventChannel} from "redux-saga";

在当前代码中,您正在创建新的传奇中间件而不是eventChannel。 Saga中间件是一个函数,它是take的受支持参数。由于saga中间件函数始终返回真实值,因此take效果会为每个分派的动作触发。