我想仅在 productType
更改时执行 useEffect
方法中的代码,
一旦页面加载,我就可以识别出 console.log 被执行超过 6-7 次,这是我不想要的。
这是我的代码摘要:
const [productType, setProductType] = useState(null);
useEffect(() => {
console.log(productType);
}, productType);
想法是当productType
改变时执行这个useEffect
中的代码,
我正在像这样的下拉菜单中更改它:
<MyDropdownComponent
value={productType}
onChange={e => setExportType(e.target.value)}
width={200}
/>
所以我想知道为什么当我加载这个 View /模板时,我的控制台中出现了 6-7-8 console.logs
of null
..
最佳答案
useEffect Hook 需要一个数组作为第二个参数。他们可能这样做是为了区分空数组(仅运行一次效果)和默认数组(在每次渲染上运行),如果直接使用参数
,他们就无法区分空数组。
您需要传递一个像这样的数组:
useEffect(() => {
console.log(productType);
}, [productType]);
关于reactjs - 对 useEffect 的多次调用 - React,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57753736/