TextField 在使用不同的 intialValues 重新渲染时没有得到更新

TextField is not getting updated on re-render with different intialValues

我正在使用 redux-form-material-ui 作为表格。我有两个文本字段的简单表单。此表单将显示传递给它的 initalValues,用户还可以更新 TextField 的值。这些 TextField 可以很好地进行验证,但我在重新渲染时遇到了问题。在路由更改时,我将不同的 intialValues 传递给该表单组件,但即使传递给它的正确值,TextFields 也没有得到更新。它只显示第一次传递的 initialValues。

这是我的代码:

来自父组件:

<ReduxForm {...initialValues} />

ReduxForm 组件:

 class ReduxForm extends React.Component {
  render () {
    return (
      <div>
        <form onSubmit={() => console.log('Submitted')} >
          <Field
            className='input-field'
            name='name'
            component={TextField}
            floatingLabelText='Full Name'
          />
         <Field
           className='input-field'
           name='email'
           component={TextField}
           floatingLabelText='Email'
         />
        </form>
      </div>
   )
 }
}

export default reduxForm({
  form: 'test-form',
  validate
})(ReduxForm)

我知道,这与 material-ui 的 TextField 中的 defaultValue 存在相同的问题。这也是 redux-form-material-ui 中的预期行为吗?如果是这样,有什么办法可以在不设置状态和所有设置的情况下解决这个问题?

谢谢!

没有使用 redux-form-material-ui 但尝试将 enableReinitialize: true 添加到你的 reduxForm 装饰器

export default reduxForm({
  form: 'test-form',
  validate,
  enableReinitialize: true
})(ReduxForm);

看看是否可行。