Reactjs MapDispatchToProps不';我不想返回一个对象
如果我创建自己的mapDispatchToProps函数,它将不起作用。如果我为connect提供一个普通对象,那么它确实可以工作,但我需要dispatch功能。。例如每页加载翻译,我在这里做错了什么吗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 ;)
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
}
控制台中有错误吗?没有,我没有错误