在javascript for Redux中包装容器方法的优雅方式

在javascript for Redux中包装容器方法的优雅方式,javascript,ecmascript-6,redux,react-redux,Javascript,Ecmascript 6,Redux,React Redux,使用所有相关方法创建单独文件*后,我的mapDispatchToProps方法是: const mapDispatchToProps = (dispatch, ownProps) => { return { toggleTreeMode: () => {dispatch(editor_thunks.toggleTreeMode());}, toggleDrawer: (e) => {dispat

使用所有相关方法创建单独文件*后,我的mapDispatchToProps方法是:

const mapDispatchToProps = (dispatch, ownProps) => {

    return {
        toggleTreeMode: () =>           {dispatch(editor_thunks.toggleTreeMode());},
        toggleDrawer: (e) =>            {dispatch(editor_thunks.toggleDrawer(e));},
        toggleDataButtons: (on) =>      {dispatch(editor_thunks.toggleDataButtons(on));},
        //... many more methods
}
签名都是一样的,所以感觉ES6中一定有更好的方法来包装它。有吗

这不起作用,因为我需要调度:

const mapDispatchToProps = (dispatch, ownProps) => {

    return editor_thunks;
}

*大多数方法都需要状态,因此感觉它是最佳解决方案

您可以使用
mapDispatchToProps()
速记法。参数
mapDispatchToProps
可以是配置对象,而不是函数。根据报告:

[mapDispatchToProps(dispatch,[ownProps]):dispatchProps](对象或函数):如果传递了一个对象,则其中的每个函数都是 假设是Redux操作创建者。具有相同功能的对象 名字,但每一个动作的创建者都被包装在一个分派调用中 它们可以直接调用,将合并到组件的 道具

这意味着,如果只需要使用dispatch包装所有操作,则可以传递method的对象,并且对象中的每个方法都将自动包装在
dispatch

如果您需要编辑的一些操作_thunks

const { toggleTreeMode, toggleDrawer, toggleDataButtons } = editor_thunks; 

connect(mapStateToProps, { toggleTreeMode, toggleDrawer, toggleDataButtons })(Component);
connect(mapStateToProps, editor_thunks)(Component);
如果需要编辑器的所有操作

const { toggleTreeMode, toggleDrawer, toggleDataButtons } = editor_thunks; 

connect(mapStateToProps, { toggleTreeMode, toggleDrawer, toggleDataButtons })(Component);
connect(mapStateToProps, editor_thunks)(Component);

最好使用
bindactioncreators
()来避免在容器的映射分派函数中复制粘贴代码。