【发布时间】:2020-10-20 21:52:24
【问题描述】:
我在使用钩子时注意到一些非常奇怪的东西,我有以下几点:
import React, { useState, useEffect } from "react";
const [dependency1, setDependency1] = useState({});
const [dependency2, setDependency2] = useState([]);
useEffect(() => {
console.log("dependency 1 got an update");
}, [dependency1]);
useEffect(() => {
console.log("dependency 2 got an update");
}, [dependency2]);
setInterval(() => {
setDependency1(prevDep1 => {
const _key = "test_" + Math.random().toString();
if (prevDep1[_key] === undefined) prevDep1[_key] = [];
else prevDep1[key].push("foo");
return prevDep1;
})
setDependency2(prevDep2 => [...prevDep2, Math.random()]);
}, 1000);
由于某种原因,只有dependency2 (添加项目的数组) 的 useEffect 触发,dependency1 (添加键的对象)的那个触发 不会触发..
为什么会发生这种情况,我怎样才能让它发挥作用?
【问题讨论】:
标签: reactjs react-hooks use-effect use-state