react hook form - watch vs onchange ,哪一个是正确的方法

问题描述

我正在使用 watchsetValuegetValues 根据另一个下拉选择值更新一个下拉选择值。 也可以使用下拉列表的 onChange so、onChangesetValuegetValues 来完成,因此无需使用 watch。 能否请您指导一下,watch 是使用 onChange 时的性能成本,或者看看下面的实现方式(没有 onChange)就可以了。

const dropdownList_1_watch_value = watch(dropdownList_1);

    useEffect(()=>{
    if (dropdownList_1_watch_value !== 'specificValue') && getValues(dropdownListControlName) !== defaultValue)
    {
    setValue(another_dropdownListControlName,defaultValue);
    }},[dropdownList_1_watch_value]);

return (
<>
 // list of dropdown list components and other controls
</>

);

解决方法

关于性能,它们之间应该没有太大区别。

我将引用一篇博文:

React Watcher 应该谨慎使用,以防万一 真正以任何其他方式解决问题。在大多数情况下,您需要 当一些道具改变时做一些事情,你真的不需要它。为什么? 因为在大多数情况下,您通常可以与 导致道具改变的动作,例如当触发一个 过滤列表中的更改。

全文:http://sborrazas.com/blog/react-watcher