我是新手做出反应和减少xo我的问题听起来很基本。
答案 0 :(得分:1)
@mariazahid mapDispatchToProps会将操作绑定到您的组件,以便您可以将其传递给您的演示组件。这是一种通常在使用Redux和React时使用的模式。
您可以导入操作并仅调度操作,但在大多数情况下,您可以调度容器 - >使用组件模式。容器是操作映射到的位置,此组件的状态和唯一目标是将此数据传递给用于显示该数据的组件。
在团队合作时,它是一种易于采用的模式。您只需要知道容器以及它如何将所需的操作/数据传递给孩子们,而不是从左侧和中间导入操作。
答案 1 :(得分:0)
从实施的角度来看,dispatch
只是一种用于与您的Reducer通信的方法
假设您的操作看起来像这样
function myAction() {
return { type: 'MY_ACTION' };
}
您正在尝试与响应操作类型的缩减器进行通信' MY_ACTION'
在您mapDispatchToProps
中,您通常会做这样的事情;
function mapDispatchToProps(dispatch) {
return { actions: bindActionCreators(myActions, dispatch) }
}
有效地,您将行动包装(绑定)到调度方法;
function bindActionCreators(actions, dispatch) {
// this is a very trivial implementation of what bindActionCreators does
let wrappedActions = {};
Object.keys(actions).forEach(action =>
// for every action, return a function that calls dispatch on the result of what your action returns
return function(...args) {
// remember here that dispatch is the only way you can communicate with the reducers and you're action's type will determine which reducer responds to return the new state
return dispatch(actions[action](..args));
}
);
}
所以,这些"绑定"现在,操作已分配给组件中的props.actions
。