Redux actions.merge 未触发
Redux actions.merge not firing
我正在尝试根据 API 调用检索到的对象,使用一些初始值填充我的 react-redux-form。
我做什么 -> 组件安装 -> ajax 调用触发(创建对象)-> returns 承诺 -> 尝试设置初始表单值。
componentDidMount = () => {
retrieveIrfItems(this.props.selected.Id).then((item) => {
console.log(item);
this.props.setDefaultFields(item[0]);
});
}
我检查了几乎所有的教程,这就是我尝试过的 ->
const mapDispatchToProps = (dispatch) => ({
checkToken: token => dispatch(checkToken(token)),
changeField: (model, e) => dispatch(actions.change(model, e)),
setDefaultFields: (values) => actions.merge('editItem', values)
});
setDefaultFields
从不触发。没有错误,没有变化。有什么建议吗?
看来您忘记派送了
const mapDispatchToProps = (dispatch) => ({
checkToken: token => dispatch(checkToken(token)),
changeField: (model, e) => dispatch(actions.change(model, e)),
// NB next line
setDefaultFields: (values) => dispatch(actions.merge('editItem', values))
});
顺便说一句,您可以提供一个对象 mapDispatchToProps
const mapDispatchToProps = {
checkToken,
changeField: actions.change,
setDefaultFiels: values => actions.merge('editItem', values)
}
您已经创建了一个地图 setDefaultFields: (values) => actions.merge('editItem', values)
但您还没有发送它,只有当您 发送 它时您的操作才会到达 Reducer。
进行此更改以发送它
setDefaultFields: (values) => dispatch(actions.merge('editItem', values))
此外,不要忘记在连接
中使用 mapDispatchToProps
export default connect(mapStateToProps,mapDispatchToProps)(yourcomponent);
我正在尝试根据 API 调用检索到的对象,使用一些初始值填充我的 react-redux-form。
我做什么 -> 组件安装 -> ajax 调用触发(创建对象)-> returns 承诺 -> 尝试设置初始表单值。
componentDidMount = () => {
retrieveIrfItems(this.props.selected.Id).then((item) => {
console.log(item);
this.props.setDefaultFields(item[0]);
});
}
我检查了几乎所有的教程,这就是我尝试过的 ->
const mapDispatchToProps = (dispatch) => ({
checkToken: token => dispatch(checkToken(token)),
changeField: (model, e) => dispatch(actions.change(model, e)),
setDefaultFields: (values) => actions.merge('editItem', values)
});
setDefaultFields
从不触发。没有错误,没有变化。有什么建议吗?
看来您忘记派送了
const mapDispatchToProps = (dispatch) => ({
checkToken: token => dispatch(checkToken(token)),
changeField: (model, e) => dispatch(actions.change(model, e)),
// NB next line
setDefaultFields: (values) => dispatch(actions.merge('editItem', values))
});
顺便说一句,您可以提供一个对象 mapDispatchToProps
const mapDispatchToProps = {
checkToken,
changeField: actions.change,
setDefaultFiels: values => actions.merge('editItem', values)
}
您已经创建了一个地图 setDefaultFields: (values) => actions.merge('editItem', values)
但您还没有发送它,只有当您 发送 它时您的操作才会到达 Reducer。
进行此更改以发送它
setDefaultFields: (values) => dispatch(actions.merge('editItem', values))
此外,不要忘记在连接
中使用 mapDispatchToPropsexport default connect(mapStateToProps,mapDispatchToProps)(yourcomponent);