Ven*_*noz 5 reactjs react-hooks
如果变量是某个值,我想在 useEffect 的依赖项中添加 if 语句。例如:
let counter = 5;
useEffect(() => {
socket.on("counter", counter => {
setCounter(counter);
});
return () => socket.off('counter', counter);
}, [socket])
useEffect(() => {
//do something
}, counter = 0)
Run Code Online (Sandbox Code Playgroud)
这个“counter=0”最终显然是错误的。那么如何在计数器为 0 时运行第二个 useEffect 呢?
你不能做你所描述的事情(或者至少不应该做),所以你只需要改变你的逻辑。useEffect您需要在变量useEffect更改时运行并检查回调中的值,而不是仅在变量等于另一个值时运行。
let counter = 5;
useEffect(() => {
if (counter == 0) {
//do something
}
}, [counter])
Run Code Online (Sandbox Code Playgroud)
另请注意,这=始终是一项作业。要检查相等性,您需要==或===。
| 归档时间: |
|
| 查看次数: |
1334 次 |
| 最近记录: |