多次调用 useEffect - React
To many calls of useEffect - React
我想仅在 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/template 时,我在控制台中得到了 null
的 6-7-8 console.logs
..
useEffect Hook 需要一个数组作为第二个参数。他们可能这样做是为了区分一个空数组(运行 效果只有一次)和默认值(运行 在每个渲染器上),如果他们使用 arguments
他们就不可能拥有直接。
您需要像这样传递一个数组:
useEffect(() => {
console.log(productType);
}, [productType]);
我想仅在 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/template 时,我在控制台中得到了 null
的 6-7-8 console.logs
..
useEffect Hook 需要一个数组作为第二个参数。他们可能这样做是为了区分一个空数组(运行 效果只有一次)和默认值(运行 在每个渲染器上),如果他们使用 arguments
他们就不可能拥有直接。
您需要像这样传递一个数组:
useEffect(() => {
console.log(productType);
}, [productType]);