【发布时间】:2021-01-05 14:13:43
【问题描述】:
在这个github redux example 中,事件ADD_TODO 的调度用于添加任务。在调试过程中,我发现添加一个任务会导致reducers todos 和 visibilityFilter 都被调用。
如何在添加任务时只调用 todos 减速器而不是 visibilityFilter 减速器。如果我发送了 SET_VISIBILITY_FILTER 类型的事件,还有 visibilityFilter 减速器。
【问题讨论】:
-
我只是克隆了 repo 并没有修改任何东西。我为
SET_VISIBILITY_FILTER操作和ADD_TODO添加了一个console.log。当我添加任务时,它不会记录来自SET_VISIBILITY_FILTERreducer 的任何内容 -
我没有使用控制台日志,而是直接在谷歌chrome调试器中调试。您可以通过 (1) 在 switch 语句之前在两个 reducer 中放置断点 (2) 转到浏览器中的 UI(locahost:3000 如果您运行命令 npm start)并添加任务,例如“测试任务”来重现在编辑框中。您将看到两个减速器都中断了,但只有 todos 减速器中的操作被执行。
-
不是因为
combineReducers()解析了reducers 并没有实际执行它们吗?
标签: redux react-redux