问题描述
我有一个使用React Router的应用程序,其中的编辑属性页面包含<AttributeForm>
。此页面上的表单正确显示了传递给它的initialValues
。
页面顶部有克隆按钮,该按钮基本上将用户重定向到创建属性页面。该页面还包含<AttributeForm>
,我想根据希望克隆的属性用户来预填充表单值。问题是initialValues
不在此处显示在表单中。我认为必须直接从包含表单的页面过渡到包含相同表单但idk的另一页面。我可以通过initialValues
正确看到console.log(this.props.initialValues)
,但它们没有显示。
我还启用了重新初始化,没有帮助。
const selector = formValueSelector("AttributeForm")
const mapStatetoProps = state => ({
sourcesArray: getDataSourcesArrayForSelect(state,true),dataType: selector(state,"data_type")
})
AttributeForm = connect(mapStatetoProps)(AttributeForm)
export default reduxForm({
form: "AttributeForm",touchOnBlur: false,enableReinitialize: true
})(AttributeForm)
解决方法
通过设置destroyOnUnmount: false
解决。设置新initialValues
之后,页面更改期间正在破坏状态,因此表单是完全清楚的。