react中useState改变值不渲染怎么解决 React中默认浅监听,当State值为对象时,栈中存的是对象的引用(地址),setState改变的是堆中的数据 所以此时 setArr(arr) 后,栈中的地址还是原地址,React浅监听到地址没变,故会认为State并未改变,故没有重渲染页面 解决的办法: 示例如下: 利用ES6的拓展符 const [arr, setArr] = useState([]) setArr([...arr])