老师我发现 redux-saga 对于action好像说拦截不准确

来源:6-9 Redux-saga中间件入门(2)

非同凡想之人

2019-10-06

我觉得更像是捕获,我测试的方式是这样的:
1、首先定义一个actionType 叫做 INCREMENT ;
2、然后我在saga里面takeEvery(‘INCREMENT’,increment);
3、最后reducer里面也加上 INCREMENT 这个actionType。

我发现,点击按钮触发 INCREMENT 的时候,即使saga里的increment函数不put这个事件,reducer还是可以收到的。所以我感觉正确的用法是,首先在saga里面 takeEvery(‘SAGA_INCREMENT’,increment); 获取到数据之后,再put到 reducer 里面一个 INCREMENT。也就是说,两个actionType 不能一样。我感觉这个很奇怪,毕竟是middleware,既然中间件不通过,后者的那一层应该收不到了才对。

图片描述

图片描述

图片描述

如图,如果sagas.js 里的actionType类型和reducer里面的一样了,那么这个action即使saga不put出去,reducer还是会收到。

由于找不到老师对应课程的代码,只能发到这里请教了。

写回答

1回答

Dell

2019-10-06

action会同时被saga和reducer接受,不是saga接受后传给reducer的

2
1
非同凡想之人
多谢!
2019-10-07
共1条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程