问题 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中,因此可以正常工作
答案 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);