我试图更新状态,这是通过Map通过以前的状态值的对象数组,我已经记录在jxs返回之前和另一个日志内useEffect与依赖相同的状态值。我记录更新状态值在jsx返回之前的日志,但记录旧的状态值内useEffect。
setSelectedAccountData((prevData) =>
prevData.map((data, i) => {
if (
name === UPDATE_TYPE.ACCOUNT_ID &&
value === null &&
data.Id === accountId
) {
return { ...data, Debit: 0, Credit: 0 };
} else {
return { ...data };
}
})
);
useEffect(() => {
console.log('State updated:', selectedAccountData);
}, [selectedAccountData]);
字符串
1条答案
按热度按时间enyaitl31#
您遇到的问题可能是由于React中状态更新的异步性质。当您调用setSelectedAccountData时,React不会立即更新状态。相反,它会安排更新,并且新的状态值在调用后不可用。
要记录更新的状态,您应该使用setSelectedAccountData提供的回调函数:
字符串
通过这样做,您可以确保在更新状态后记录状态。
然后,您的useEffect应该正确地记录更新的状态:
型