我似乎找不到这个问题的具体答案。
如果我有一个已连接的组件,并且希望从不同的化合器传递多个动作:
import { actions as commonActions } from 'some/action/file';
import { actions as userActions } from 'another/action/file';
我可以像在bindActionCreators
通话中那样使用mapDispatchToProps
吗?
const mapDispatchToProps = dispatch => ({
actions: bindActionCreators((commonActions, userActions), dispatch)
});
或者我必须像这样传递它们
actions: bindActionCreators({ ...commonActions, ...userActions }, dispatch);
它们在我正在开发的所有应用程序中都像后者一样传递,但是我正在清理和更新应用程序,并希望将其最小化。前者是可以接受的,还是必须作为变形对象传递?
谢谢!
答案 0 :(得分:1)
您想使用Object.assign:
return {
actions: bindActionCreators(Object.assign({}, commonActions, userActions), dispatch)
};
您可以直接在商店上调用操作,以便删除bindActionCreators:
this.props.store.dispatch(sendMessage())
This article进行了更详细的介绍,并提供了bindActionCreators的替代方法,因为他建议不要使用它。