Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Recat钩子如何在状态为0时检测更改_Javascript_Reactjs_React Hooks_Use Effect - Fatal编程技术网

Javascript Recat钩子如何在状态为0时检测更改

Javascript Recat钩子如何在状态为0时检测更改,javascript,reactjs,react-hooks,use-effect,Javascript,Reactjs,React Hooks,Use Effect,我的意思是: React.useEffect(() => { console.log('here'); }, [val === undefined ? null : val]); 但是val可以是0,所以当val=0时不会触发效果,因为它认为它是错误的。。。那么如何告诉React,如果值为0,则触发效果?只要依赖项数组中的一个值发生更改,就会触发效果。 数组中的值在使用Object.is的渲染之间进行比较。只要依赖关系数组中的一个值发生更改,就会触发效果。 数组中的值在使用Ob

我的意思是:

React.useEffect(() => { 
   console.log('here'); 
}, [val === undefined ? null : val]);

但是val可以是0,所以当val=0时不会触发效果,因为它认为它是错误的。。。那么如何告诉React,如果值为0,则触发效果?

只要依赖项数组中的一个值发生更改,就会触发效果。
数组中的值在使用Object.is的渲染之间进行比较。

只要依赖关系数组中的一个值发生更改,就会触发效果。
数组中的值在使用Object.is的渲染之间进行比较。

您可以这样编写代码

useEffect(() => {
  if(val !== undefined){
    //do something
  }
}, [val])

您可以按这种方式编写代码

useEffect(() => {
  if(val !== undefined){
    //do something
  }
}, [val])

当值变为0时,效果应至少触发一次。如果在重新渲染之间保持不变,则不会触发效果。我创建了一个显示0触发useEffect的小沙盒:当值变为0时,效果应该至少触发一次。如果在重新渲染之间保持不变,则不会触发效果。我创建了一个小沙盒,显示0触发效果: