Redux-Form初始值不适用于Redux-form / immutable

时间:2018-10-24 13:20:36

标签: reactjs redux-form immutable.js

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

我有什么

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

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

我期望的结果

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

哪里出错了?

首先,我只是想将formValues包含在Form道具中:我遇到了一个问题,因为我使用的是IMMUTABLE,所以我必须像这样导入

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

而不是像这样

import { getFormValues } from 'redux-form';

修复后,我想向表单中添加一些initialValues,这就是问题所在。 我以Form形式记录了我的道具,并传递了InitialValues,但不是以我使用的JSON格式传递,而是以IMMUTABLE MAP传递... 但是以这种格式,值不会以表格的形式注入。

TL / DR

导入redux-form / immutable-> 可以使用getFormValues,但是initialValues存储为不可变Map,因此无法正常工作

导入redux-form-> 不能使用getFormValues,但是initialValues存储在JSON中,因此可以正常工作

1 个答案:

答案 0 :(得分:0)

您可以使用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);