2016-08-31 24 views
2

我正在研究todo redux教程。尽管关于如何将调度发送到正确的减速器,我已经失去了,因为这个例子结合了减速器。 REDX如何知道将返回值从setVisibilityFilter发送到visibilityFilter减速器?调度到正确的reducer

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

这个由Redux作者制作的视频系列可能会帮助你更多地了解Redux。 https://egghead.io/lessons/javascript-redux-the-single-immutable-state-tree –

回答

2

有没有这样的事情调度到某个reducer。每次你发出一个动作,所有的减速器功能都被执行。确保执行正确的代码段的唯一方法是确保操作类型的名称是唯一的,并且完全存在于一个reducer中。

这就是为什么最新的流行模式是Redux模块,您可以使用包含模块名称和动作类型名称的长字符串命名每个动作类型。例如,查看ducks

+0

更具体地说:当你派遣时,执行***单根缩减器功能***。根减速器可能会将一些工作委托给其他功能,在这种情况下,由根减速器决定何时以及如何调用它们。 'combineReducers'实用程序专门调用所有传入的“切片缩减器”,以给他们一个回应的机会。 – markerikson

1

调度员不知道谁会得到这些操作,也不关心他。调度员的工作仅限于调度的行动。现在在另一边减速器选择到任何行动。

换句话说,分派器就像一个扬声器,它只是获取数据并大声喊出来。和reducer(在switch语句中,或者你在其中实现的任何控制)选择对哪个动作作出反应。