【问题标题】:Redux-form onChange not trigger correctly on the formRedux-form onChange 无法在表单上正确触发
【发布时间】:2018-02-07 01:47:12
【问题描述】:

我正在使用 reduxForm。

我用

创建了组件
<form>
    <Field name="example" component="SomeCustomInputComponent" type="text"/>
</form>

我使用 onChange 函数将整个组件应用于 reduxForm:

export default reduxForm({
    form: 'settingsAuthorization',
    destroyOnUnmount: false,
    forceUnregisterOnUnmount: true,
    enableReinitialize: true,
    onChange: (value, dispatch, props) => {
        console.warn(value);
    }
})(component);

在输入一些值之后,我的 onChane 操作没有做任何事情。

最有趣的是,我尝试调试 onChange 函数的使用,我注意到: Debbug IMG

这里的 nextProps.values 和 this.props.values 是一样的。而且当我更改表单上的内容时。 nextProps 和 this.props 的值。已初始化。

但在 redux devtool 网站上,我获得了有关已调度的 redux-form/CHANGE 操作的信息:

@@redux-form.CHANGE

我可以看到表单值在全局存储(store.form.form_name.values.name)内部发生了变化:

form -> form_name -> values -> name : 'old Name' => 'new Name'

当我放的时候:

onChange: (value, dispatch, props) => {
        console.warn(value);
    }

我网站上的其他表单的属性一切顺利。

如何使用 react-redux 修复我的第一个问题以响应更改事件?

【问题讨论】:

    标签: javascript react-redux redux-form


    【解决方案1】:

    您需要将表单缩减程序添加到您的 redux 缩减程序,以便您的表单状态在 redux 存储中存储和更新。 有关如何执行此操作的文档here

    如果您没有将 redux 用于其他任何事情,则需要 createStore,并将您的应用程序包装在 react-redux Provider,更多关于 here

    【讨论】:

    • 我做到了。但我没有提到它。感谢您的评论。
    猜你喜欢
    • 2016-12-18
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多