赞
踩
最近在逐渐将函数写法从class组建从函数组件转变,在开发的过程中遇到了一个表单中的小问题,这里记录一下:
场景:页面有两个下拉框,有联动关系,第二个下拉框需要根据第一个下拉框的值发生变化,所以在第一个下拉框的onChange的回调函数中完成数据获取之后,需要调用form.setFieldsValue将第二个下拉框中的值更新掉,但是hooks插件会提示你缺少了一个form依赖项,当把form依赖项添加到依赖数组中之后,页面就会陷入死循环中,因为函数中对form表单的某一项做了赋值操作,而依赖项中有form,这样就造成了无限循环。但是如果不填的话又感觉不太好,总想找一个办法来解决这个问题。
一种暴力的解决方法就是直接使用vscode的提示,在对应行上面加一行eslint注释,使得页面不提示缺少了依赖项
我这边找到的另外一种解决方法是把setFieldsValue这个函数作为依赖项传入到依赖数组中,而不是把form传入进去,从github上有关的问题来看也推荐使用这种办法来解决这个问题,form作为依赖项传入进去是一定会出问题的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。