项目基建:formily + React + Redux + 远程schema + typescript
formily初始化values报错
现象:页面一开始进来正常,退出再点进来后报错如下截图
定位代码位置:
useDeepCompareEffect(() => {
if (!state.dirty && form) {
form.setInitialValues(initialFormValues, 'overwrite');
}
}, [initialFormValues, form]);
相关知识
overwrite赋值方式会直接用 = 赋值
****
type IFormMergeStrategy = 'overwrite' | 'merge' | 'deepMerge' | 'shallowMerge'
修改
useDeepCompareEffect(() => {
if (!state.dirty && form) {
form.setInitialValues(initialFormValues);
}
}, [initialFormValues, form]);
dependency 与 validate时机
现象:表单提交正确数据时,校验却用了上一步修改的数据,导致报错
定位代码位置:
相关知识
修改:setTimeout
表单提交数据的effects选择
——结合Debtor表格看底下几个提交数据的实际的区别
onFormInputChange
onFieldInputValueChange
onFieldValueChange
onFormValuesChange