Closed shengbenqiang closed 11 months ago
你的effect中对将form.values 引用改变了,造成了每个field的更新。 使用form.setValues 或者Object.assign的方式去设置值就不会触发多次执行了
"x-reactions": [
{
dependencies: ["spaceLocationNo"],
fulfill: {
run:
"\n const defaultValue = {\n array: [],\n };\n $form.values = {\n ...($form.values || {}),\n 'locationEnName': $deps[0] ? ($deps[0]['spaceLocationEnName'] || '') : (defaultValue['undefined'] || '')\n };\n "
}
}
]
你的effect中对将form.values 引用改变了,造成了每个field的更新。 使用form.setValues 或者Object.assign的方式去设置值就不会触发多次执行了
"x-reactions": [ { dependencies: ["spaceLocationNo"], fulfill: { run: "\n const defaultValue = {\n array: [],\n };\n $form.values = {\n ...($form.values || {}),\n 'locationEnName': $deps[0] ? ($deps[0]['spaceLocationEnName'] || '') : (defaultValue['undefined'] || '')\n };\n " } } ]
非常感谢,我这边试了一下成功了,我这里可以问下这里这样设计是为什么呢?或者有这样设计介绍文档链接吗,如果我可以看的话,我想要了解一下这样设计原因和概念,谢谢
- [ ] I have searched the issues of this repository and believe that this is not a duplicate.
Reproduction link
Steps to reproduce
进入例子链接,查看 console.log 打印内容就可以发现 handleSearchCountry,handleSearchCity,handleSearchTimeZone,handleSearchSpaceLocation被多次调用
What is expected?
在初始化时 handleSearchCountry,handleSearchTimeZone,handleSearchAdpCorp 这种一次性函数只被调用一次,handleSearchCity,handleSearchSpaceLocation在联动时再被调用
What is actually happening?
在初始化时,handleSearchCountry,handleSearchCity,handleSearchTimeZone,handleSearchSpaceLocation 等函数似乎被循环调用了
Package
@formily/react@2.2.24
我不确定这是否是个 bug ,还是我的使用出现了问题,但我查阅了相关 issue 和 discussions 没有找到问题,也查阅了我所使用的 api 的相关文档,几番测试都查找不到原因,希望得到解答,谢谢
这个就是引用的问题。 直接改form.values的引用相当于改了所有的值。你只更新values的某个值就只会通知对应的观察者
Reproduction link
Steps to reproduce
进入例子链接,查看 console.log 打印内容就可以发现 handleSearchCountry,handleSearchCity,handleSearchTimeZone,handleSearchSpaceLocation被多次调用
What is expected?
在初始化时 handleSearchCountry,handleSearchTimeZone,handleSearchAdpCorp 这种一次性函数只被调用一次,handleSearchCity,handleSearchSpaceLocation在联动时再被调用
What is actually happening?
在初始化时,handleSearchCountry,handleSearchCity,handleSearchTimeZone,handleSearchSpaceLocation 等函数似乎被循环调用了
Package
@formily/react@2.2.24
我不确定这是否是个 bug ,还是我的使用出现了问题,但我查阅了相关 issue 和 discussions 没有找到问题,也查阅了我所使用的 api 的相关文档,几番测试都查找不到原因,希望得到解答,谢谢