亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaScript 數組對象值更新 (React)

JavaScript 數組對象值更新 (React)

慕斯709654 2023-04-20 17:10:27
您好,我正在嘗試更新表中的行值 (React Ant Ui),它在我使用靜態數據時有效。比如我的靜態數據表數據是[    {      "questionNumber": "",      "questionType": "",      "marks": "",      "numberOfOptions": "",      "correctOptions": "",    },    {      "questionNumber": "",      "questionType": "",      "marks": "",      "numberOfOptions": "",      "correctOptions": "",    },  ]我使用以下方法更新行數據-  const onInputChange: any = (key, index) => (    e: React.ChangeEvent<HTMLInputElement>  ) => {    const newData = [...tableData];    newData[index][key] = (e);    setTableData(newData);  };如果我想更新它的標記,index 1它工作得很好。但是我需要更新動態數據。我遵循了這種方法const [tableData, setTableData] = useState<any>([]);然后單擊按鈕,我將動態數組值推送到表數據中,就像這樣setTableData(Array(3).fill(newObj))newObj價值在哪里  const newObj = {      "questionNumber": "",      "questionType": "",      "marks": "",      "numberOfOptions": "",      "correctOptions": "",    }但是現在我面臨一個問題,如果我想改變 的值marks,它會更新所有的索引marks如何像靜態數組一樣更新此動態數組的單個索引值?
查看完整描述

2 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

您可以深度克隆對象數組。

JavaScript 對象是引用。所以newObj被數組的每個槽引用。

setTableData(JSON.parse(JSON.stringify(Array(3).fill(newObj))))



查看完整回答
反對 回復 2023-04-20
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

不要替換整個 tableData 狀態,請嘗試僅更新 tableData 狀態引用中更改的內容。

const newData = Array(3).fill(newObj)
setTableData({... tableData, ...newData});


查看完整回答
反對 回復 2023-04-20
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號