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()。