如何将动作创建者分成单独的文件?

问题描述 投票:0回答:1

我正在尝试将我的动作创建者放入单独的文件中。我收到了错误

错误分派未定义。

// AddNewNote.js

// AddNewNote class is here

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

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

//note actions.就是

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

export const actionNoteCreate = (text) => {
  dispatch({
    type: actionTypes.NOTE_CREATE,
    payload: text,
  });
};
javascript reactjs redux
1个回答
2
投票

发送应该在你的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动作创建者。一个具有相同函数名的对象,但每个动作都有创建者包含在一个调度调用中,因此它们可以被直接调用,将​​被合并到组件的道具中。“ https://github.com/reactjs/react-redux/blob/master/docs/api.md

© www.soinside.com 2019 - 2024. All rights reserved.