我正在尝试将我的动作创建者放入单独的文件中。我收到了错误
未定义错误分派。
// 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,
});
};
答案 0 :(得分: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