ant-design / pro-components

🏆 Use Ant Design like a Pro!
https://pro-components.antdigital.dev
MIT License
4.3k stars 1.36k forks source link

为什么 DrawerForm onFinish 后 会造成 ProFormDependency 重新渲染 或其 依赖项重新触发 onChange? #8456

Open MaQianheng opened 5 months ago

MaQianheng commented 5 months ago

`<ProFormDependency name={['depFormItemName']}> {(fvs) => { const { data } = fvs.depFormItemName; return ( <ProFormField formItemProps={{ name: "aFormItem", }}

); }} ` 如上场景, depFormItemName 的值会携带 data 数据, data 改变时 内部组件 XXXTable 需要根据 data 重新整理数据并渲染, 但是触发 DrawerForm 的 onFinish 操作后会造成 ProFormDependency 重新渲染 并且传下来的 data 似乎也是全新的 会再次触发 useEffect, 导致 XXXTable 子组件用户已经填写的值被 按照 data 重新整理而重置, 虽然最终提交的值是正确的, 但是如果表单提交失败, 那用户已填写的值就会丢掉。 为什么会这样? 怎么避免这种情况