如何将 `destroyOnUnmount: false` 和 `forceUnregisterOnUnmount: false` 与 `enableReinitialize: true` 一起使用

How to use `destroyOnUnmount: false` and `forceUnregisterOnUnmount: false` with `enableReinitialize: true`

我有一个用于创建和更新表单的向导表单。我正在使用 redux-form/immutable

当我从向导表单的 tab1 导航到 tab2 时,我正在丢失表单 tab1 中的状态(用户输入)

我试过使用 destroyOnUnmount: falseforceUnregisterOnUnmount: false 没有 enableReinitialize: true 它适用于更新屏幕,但对于创建屏幕我无法使用从 API 获取的现有值初始化表单。

FUNCTIONAL FORM COMPONENT

const AlphaForm = () => {

  return (
    <Panel theme="light">
      <PanelHeader>FORM</Panel.Header>
      <PanelBody>
        <Field
          component={Check}
          label="abc"
          name="abc"
          type="checkbox"
        />
        .....................................
      </PanelBody>
    </Panel>
  );
};

Wrapper

let AlphaFormWrapper = reduxForm({
  destroyOnUnmount: false,
  forceUnregisterOnUnmount: false,
  enableReinitialize: true,
  form: 'alphaForm'
})(AlphaForm);

Connect

const AlphaConnect = connect(
  state => {
    return {
      initialValues: state.getIn(['alphaForm'])
    };
  },
)(AlphaFormWrapper);

使用 enableReinitialize: truekeepDirtyOnReinitialize: true 为我解决了上述问题