Reactjs MapDispatchToProps不';我不想返回一个对象

Reactjs MapDispatchToProps不';我不想返回一个对象,reactjs,react-redux,Reactjs,React Redux,如果我创建自己的mapDispatchToProps函数,它将不起作用。如果我为connect提供一个普通对象,那么它确实可以工作,但我需要dispatch功能。。例如每页加载翻译,我在这里做错了什么吗 const mapStateToProps = (state) => { const { isFetching, lastUpdated, items, errors } = state.transactions; // fetch from redux state ;)

如果我创建自己的mapDispatchToProps函数,它将不起作用。如果我为connect提供一个普通对象,那么它确实可以工作,但我需要dispatch功能。。例如每页加载翻译,我在这里做错了什么吗

const mapStateToProps = (state) => { 

    const { isFetching, lastUpdated, items, errors } = state.transactions; // fetch from redux state ;)

    return {
        translate: getTranslate(state.locale),
        isFetching,
        lastUpdated,
        items,
        errors
    }
} 
const mapDispatchToProps = dispatch => {

    return { 
        fetchTransactionsIfNeeded, 
        invalidateList 
     }
}
export default connect(mapStateToProps, mapDispatchToProps)(Transactions);
下面的代码有效

const mapStateToProps = (state) => { 

    const { isFetching, lastUpdated, items, errors } = state.transactions; // fetch from redux state ;)

    return {
        translate: getTranslate(state.locale),
        isFetching,
        lastUpdated,
        items,
        errors
    }
} 

export default connect(mapStateToProps, { 
       fetchTransactionsIfNeeded, 
       invalidateList 
})(Transactions);

根据redux文档

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

如果传递了一个函数,它将作为第一个被分派 参数由您来返回以某种方式使用的对象 派遣以您自己的方式绑定动作创建者。(提示:您可以使用 Redux中的bindActionCreators()帮助程序。)

在第一种情况下,当您实现mapDispatchToProps时,您返回的是一个普通对象,但您需要在其中使用dispatch,因为redux不会将其本身假定为动作创建者

你会像这样实现它

const mapDispatchToProps = dispatch => {

    return { 
        fetchTransactionsIfNeeded: (...args) => {
               dispatch(fetchTransactionsIfNeeded(...args))
         }, 
        invalidateList: (...args) => {
               dispatch(invalidateList(...args))
         },
     }
}
或者,不要将其创建为函数,而只是一个对象

const mapDispatchToProps = { 
       fetchTransactionsIfNeeded, 
       invalidateList 
}

控制台中有错误吗?没有,我没有错误