我正在嘗試從位于父組件中的大子組件設定陣列狀態。
我嘗試使用setNumberOfVar([...varsLines]);此方法,但它不會立即更新狀態。它會更新,但會后退一步。
我的代碼
const removeVar = (e, val) => {
e.preventDefault();
var varsLines = numberOfVar;
varsLines = numberOfVar.filter((item) => {
return item.postion != val;
});
varsLines = varsLines.map((item) => {
return {
...item,
postion: item.postion > val ? item.postion - 1 : item.postion,
};
});
console.log(varsLines);
setNumberOfVar([...varsLines]); // <== this line is not updating the state immediately;
console.log(numberOfVar);
};
uj5u.com熱心網友回復:
setNumberOfVar() 是一個異步操作,不會立即更新狀態。
如果你想在狀態更新時獲得類似回呼的東西,你可以使用在狀態更新時運行的 useEffect 鉤子。
import {useEffect } from 'react';
useEffect(() => {
console.log(numberOfVar);
},[numberOfVar]);
uj5u.com熱心網友回復:
嘗試做這樣的事情
setNumberOfVar(prevState=>prevState.filter().map())
在過濾器和地圖中使用您自己的條件,看看它是否有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405655.html
標籤:
