reactjs React useState数组在第一次更新时保持为空

zed5wv10  于 2023-01-30  发布在  React
关注(0)|答案(1)|浏览(333)
const [liveRows, setLiveRows] = useState([]);

function addRow(arr){

    setLiveRows([...liveRows, arr]);

    console.log(liveRows)

}

当我使用一个数组运行addRow函数时,页面中使用的Map重新呈现得很好,但是日志中的数组显示为空。
再次运行该函数将显示更新前阵列的先前状态,但重新渲染显示正确。
我假设这是由于蔓延,但我不知道如何纠正它?

6kkfgxo0

6kkfgxo01#

这是预期行为。setState不是异步的! setState始终在下一次呈现之后工作。

    • set函数仅更新状态变量以用于下一次渲染。如果在调用set函数后读取状态变量,您仍将获得调用前屏幕上的旧值。**

详情请参阅:https://beta.reactjs.org/reference/react/useState

相关问题