我正在研究todo redux教程。我失去了关于如何将调度发送到正确的减速器,因为这个例子结合了reducer。 redux如何知道将setVisibilityFilter
的返回值发送到visibilityFilter
减速器?
http://redux.js.org/docs/basics/Reducers.html
export const setVisibilityFilter = (filter) => {
return {
type: 'SET_VISIBILITY_FILTER',
filter
}
}
const mapDispatchToProps = (dispatch, ownProps) => {
return {
onClick: () => {
dispatch(setVisibilityFilter(ownProps.filter))
}
}
}
也许它会被设计发送给所有减速器。
答案 0 :(得分:2)
没有派遣到某个减速机的事情。每次分派动作时,都会执行所有减速器功能。确保执行正确代码的唯一方法是确保操作类型的名称是唯一的,并且恰好存在于一个reducer中。
这就是为什么最新的方式是Redux Modules,在这里你用一个包含模块名称和动作类型名称的长字符串命名每个动作类型。例如,请查看ducks。
答案 1 :(得分:1)
调度员不知道谁将采取行动,他也不在乎。调度员的工作仅限于调度操作。现在另一方面,减速器选择倾听来执行任何动作。
换句话说,Dispatcher就像一个发言者,它只是获取数据并大声喊出来。和reducer(在他们的switch语句或你在其中实现的任何控制)选择要响应的动作。