所以我是react hook的新手,似乎不理解useEffect是如何工作的。。。
我有一个钩子:
const [print, setPrint] = useState(false);
使用效果:
useEffect((x) => {
console.log("2nd => ",x)
}, [print]);
然后我有一个按钮功能:
const btnPrint = async () => {
let x = 1;
console.log("1st => ",x);
setPrint(true);
};
按下按钮后,输出为:
1st => 1
2nd => undefined
为什么x
在useEffect函数中显示为undefined
?
谢谢
useEffect函数将永远不会接收任何参数。它只是一个函数,当您指定的任何依赖项(在本例中为print
的值(发生更改时,它将被调用。
这似乎不是一个useEffect钩子用例。你到底想在这里完成什么?
首先:CCD_ 4关键字声明块范围中的变量
这意味着它不能在btnPrint函数的块之外访问。
其次,useEffect是一个生命周期挂钩。这意味着它在安装或卸载组件时运行。如果传递一个空数组,它只运行一次。如果将引用数组传递给其他变量、函数等,则只要提供的变量发生更改,它就会运行。