gpt4 book ai didi

javascript - 如何将 Action 创建者分离到单独的文件中?

转载 作者:行者123 更新时间:2023-12-01 02:22:40 25 4
gpt4 key购买 nike

我正在尝试将我的 Action 创建器放入一个单独的文件中。我收到错误

Error dispatch is not defined.

//AddNewNote.js

// AddNewNote class is here

const mapDispatchToProps = dispatch => ({
actionNoteCreate: actionNoteCreate,
});

export default connect(null, mapDispatchToProps)(AddNewNote);

//noteActions.js

import actionTypes from '../constants/actionTypes';

export const actionNoteCreate = (text) => {
dispatch({
type: actionTypes.NOTE_CREATE,
payload: text,
});
};

最佳答案

调度应该位于您的mapDispatchToProps内并从您的actionCreator中删除:

const mapDispatchToProps = dispatch => ({
actionNoteCreate: text => dispatch(actionNoteCreate(text)),
});

export default connect(null, mapDispatchToProps)(AddNewNote);

但是,最好的方法可能是简单地使用 mapDispatchToProps 中的对象:

const mapDispatchToProps = {
actionNoteCreate
};

react-redux会自动用dispatch包装它。

"[mapDispatchToProps(dispatch, [ownProps]):dispatchProps](对象或函数):如果传递一个对象,则其中的每个函数都被假定为 Redux action 创建者。具有相同函数名称的对象,但每个 Action 创建者都包含在调度调用中,因此它们可以直接调用,并将合并到组件的 Prop 中。” https://github.com/reactjs/react-redux/blob/master/docs/api.md

关于javascript - 如何将 Action 创建者分离到单独的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49085581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com