在redux-form中设置enableReinitialize的含义

时间:2017-10-03 20:59:35

标签: reactjs redux redux-form

我有一个多步向导的应用程序,我有一个更高的订单组件,可以在流程中创建每个表单,目前我每个表单组件都有以下选项:

{
  form: formName,
  validate: validate,
  destroyOnUnmount: false,
  keepDirtyOnReinitialize: true,
  forceUnregisterOnUnmount: true
}

我目前没有设置enableReinitialize因此默认为默认。

每次用户进入下一步时,我都会更新redux状态。

这是向导方案中的一个问题,因为如果用户单击然后再向前,则会丢失某些状态,因为在该特定步骤中字段将重新设置为initialValues

enableReinitialize设置为true会对性能产生什么影响,每次状态更改时,还是每次加载组件时都会重置?

2 个答案:

答案 0 :(得分:0)

redux-form docs对向导表单有一个非常有用的指南。您要找的不是enableReinitialize,而是destroyOnUnmountfalse

我认为文档很直接。

答案 1 :(得分:0)

在 Redux 表单上的 Wizard 上使用它来保留字段值。

const formWrapped = reduxForm({
    form: 'yourFormName',
    destroyOnUnmount: false, // <------ preserve form data
    forceUnregisterOnUnmount: true
})(YourComponentName);