【发布时间】:2021-12-12 16:07:04
【问题描述】:
我想知道为什么 'Hello' 只记录一次,因为 setCounter(1) 会触发重新渲染,对我来说,'Hello' 将记录两次。 也许与依赖数组有关?既然没有通过 props.visible,那么 useEffect() 只会运行一次?
这是我的 CodeSandBox:https://codesandbox.io/s/peaceful-brattain-hw0mm?file=/src/App.js:23-287
感谢任何帮助。
import { useState, useEffect } from "react";
export default function App(props) {
const [counter, setCounter] = useState(0);
useEffect(() => {
console.log("Hello");
setCounter(1);
}, [props.visible]);
return <div className="App">{counter}</div>;
}
【问题讨论】:
-
每次检测到依赖项发生变化时都会运行效果。在您的示例中,将计数器设置为 1 不会更改
props.visible的值,因此效果不会重新触发
标签: reactjs use-effect