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);