Redux-Form initialValues 不适用于 redux-form/immutable

Redux-Form initialValues not working with redux-form/immutable

问题 https://codesandbox.io/s/3o4j9y375

我有什么

好吧,这真的很棘手......我有以下代码:

Form = connect((state, props) => ({
  formValues: getFormValues('myForm')(state),
  initialValues: props.values,
}))(Form);

我期待的

在我的表单中同时支持 formValues 和 initialValues。

哪里出错了?

首先,我只是想让 formValues 出现在我的 Form props 中:我遇到了一个问题,因为我使用的是 IMMUTABLE,所以我不得不像这样导入

import { getFormValues } from 'redux-form/immutable';

而不是像这样

import { getFormValues } from 'redux-form';

修复后,我想向我的表单添加一些初始值,如上所示,这就是问题所在。 我控制台在 Form 中记录了我的道具,并且传递了 initialValues 但不是我使用的 JSON 格式而是在 IMMUTABLE MAP 中... 但是在这种格式中,值没有注入到表单中。

TL/DR

import redux-form/immutable -> 可以使用 getFormValues 但 initialValues 存储为不可变的 Map,因此不起作用

import redux-form -> 不能使用 getFormValues 但 initialValues 存储在 JSON 所以它可以工作

您可以使用 formValueSelector https://redux-form.com/7.4.2/docs/api/formvalueselector.md/

import { formValueSelector } from 'redux-form/immutable'

const selector = formValueSelector('myForm');

const mapStateToProps = (state) { formValues: selector('myForm')(state), } export default connect(mapStateToProps)(Form);