ref和wrappedComponentRef区别
场景:
(1)在子组件为表单组件,在填入数据后请求接口,接口报错输入的内容不符合要求,此时需要显示回原来值。
(2)一开始是使用ref绑定子组件,利用setFieldsValue设置为原值。后面发现页面展示的数据没有发生变化
原因:
父组件使用的子组件是一个高阶组件,子组件带有Form.create(),真正作为表单处理的又是在子组件的子组件内部。导致子组件内部的表单数据无法更改
解决方法:
将ref改为wrappedComponentRef
//父组件
formProps = null; //用于保存子组件的form
<JKTable {...this.getParams()} ref={'JKTable'}
wrappedComponentRef={(res)=>{
this.formProps = res.props.form;
}}
></JKTable>
//父组件更新子组件表单数据
this.formProps.setFieldsValue({
name:'123'
});