useEffect setData 不设置数据,尽管值是新的
useEffect setData not setting data despite values being new
所以这是一段代码
const handleChange = (e, tipo) => {
console.log(e.target.value); //0
console.log(data[tipo]); //1
data[tipo] = e.target.value;
console.log(data[tipo]); //2
console.log(data); //3
setData(data);
};
Console.log 2 和 3 告诉我操作的数据发生了变化,显示了我插入的字符,但是当我执行 setData 时它甚至没有启动 useEffect!
useEffect(() => {
console.log("____________________________________");
console.log(data);
console.log("____________________________________");
}, [data]);
它只在请求数据时打印一次。
修改数据后,设置数据如下:
如果数据是数组:
setDate([...data]);
如果数据是对象:
setDate({...data});
React 将跟踪数据引用而不是您在数据内部所做的更改,因此如果您希望更改生效,请考虑将新引用传递给 setData()。
所以这是一段代码
const handleChange = (e, tipo) => {
console.log(e.target.value); //0
console.log(data[tipo]); //1
data[tipo] = e.target.value;
console.log(data[tipo]); //2
console.log(data); //3
setData(data);
};
Console.log 2 和 3 告诉我操作的数据发生了变化,显示了我插入的字符,但是当我执行 setData 时它甚至没有启动 useEffect!
useEffect(() => {
console.log("____________________________________");
console.log(data);
console.log("____________________________________");
}, [data]);
它只在请求数据时打印一次。
修改数据后,设置数据如下:
如果数据是数组:
setDate([...data]);
如果数据是对象:
setDate({...data});
React 将跟踪数据引用而不是您在数据内部所做的更改,因此如果您希望更改生效,请考虑将新引用传递给 setData()。