ant-design FormItem的shouldUpdate方法能否将触发的字段名给暴露出来?

lnlaulya  于 3个月前  发布在  其他
关注(0)|答案(7)|浏览(44)

What problem does this feature solve?

在大数据可编辑表格表单下,总表单数量可能会来到几千,大部分字段间都有shouldUpdate来做交互依赖,对应的每次表单变动时,shouldUpdate都会调用几千次,如果能将触发shouldUpdate的字段暴露出来,就能够以更快的方法去处理shouldUpdate逻辑,不用自己再去从全量数据中比较是不是该字段的依赖变动了。

为何我不用dependencies?

手动setFields不会触发对应添加了dependenceies字段的更新,不知道这个bug v5版本修复没,且shouldUpdate能够适应更多的场景

What does the proposed API look like?

shouldUpdate = (prevValues, currValues, triggerFieldName) => {}

n8ghc7c1

n8ghc7c12#

用 useWatch?

动态增减的List表单,用useWatch模式也没法精确知道哪个index下的哪个字段变化了

gr8qqesn

gr8qqesn3#

用 useWatch?

动态增减的List表单,用useWatch模式也没法精确知道哪个index下的哪个字段变化了

Form.List 下面的 children 可以单独抽一个组件,然后组件里用 useWatch

const name= useWatch(['list', index , 'name'])

sbtkgmzw

sbtkgmzw4#

方法可行,但是有点局限,只能依赖该行下的其他某个字段。对于更复杂的场景,如一行的字段依赖于其他所有行的某个字段是否变更就有点束手无措了

cdmah0mi

cdmah0mi5#

方法可行,但是有点局限,只能依赖该行下的其他某个字段。对于更复杂的场景,如一行的字段依赖于其他所有行的某个字段是否变更就有点束手无措了

useWatch('list') 就是 list 所有行所有字段改变都会变

06odsfpq

06odsfpq6#

方法可行,但是有点局限,只能依赖该行下的其他某个字段。对于更复杂的场景,如一行的字段依赖于其他所有行的某个字段是否变更就有点束手无措了

useWatch('list') 就是 list 所有行所有字段改变都会变

没有精确到具体哪个field依赖变更,直接依赖list存在性能问题

ebdffaop

ebdffaop7#

方法可行,但是有点局限,只能依赖该行下的其他某个字段。对于更复杂的场景,如一行的字段依赖于其他所有行的某个字段是否变更就有点束手无措了

useWatch('list') 就是 list 所有行所有字段改变都会变

没有精确到具体哪个field依赖变更,直接依赖list存在性能问题

看你需求了

相关问题