1 回答

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊
問題
您正在改變狀態(tài)數(shù)組并更新它。React 不知道狀態(tài)是否已經(jīng)改變,因?yàn)槟銈鬟f的是對 setState 的舊引用。
解決方案
首先,獲取狀態(tài)數(shù)組的副本。
改變狀態(tài)數(shù)組的復(fù)制版本。
使用新的更新變異數(shù)組更新您的狀態(tài)。
const onModelChange = e => {
const { name, value } = e.target;
let newModels = [...models];
newModels[
newModels.findIndex(model => model.name === name)
].value = parseInt(value, 10);
setModels(newModels);
};
const onCalculate = modelName => {
let newModels = [...models];
newModels[
newModels.findIndex(model => model.name === modelName)
].value = 123;
setModels(newModels);
};
您可以在此示例中檢查類似的問題:- https://stackblitz.com/edit/react-osxmnr
添加回答
舉報(bào)