文章目錄
- 一、使用useState變更表格資料,表格內的開關組件并不會更新組件?
- 二、使用組件唯一 key 實作每重繪一次表格,key值都會變更,從而實作組件更新的功能,
- 三、變更 defaultChecked 為 checked 實作自定義組件的監聽更新,
一、使用useState變更表格資料,表格內的開關組件并不會更新組件?

首先我們可以看一下代碼,我在這邊是采用的 defaultChecked ,也就是組件初次的默認值進行資料變更

但是不免得會有一個問題就是,表格內的組件只在第一次加載時是對的,當我變更完資料,更新串列時,表格內的自定義組件并不會隨著表格的更新而去銷毀而更新,也就導致了資料更新了 但是開關并不會變更的問題
二、使用組件唯一 key 實作每重繪一次表格,key值都會變更,從而實作組件更新的功能,
首先我們要知道的是 每一個組件都可以有一個唯一的 key 值,那么關于這個 key 值,通常大家把他看成是diff快速查找對比差異的一個唯一值,同樣的我們也可以利用這個唯一值去做一些組件更新,因為默認的 diff 會將一個與上次對應對比的組件 key 值不等的話 當做是一個新組件,

定義的 1000 基數,防止重復

每次觸發開關變更事件時,重新獲取表格資料

每次更新表格時就會觸發 key 值 +1 從而實作組件更新

三、變更 defaultChecked 為 checked 實作自定義組件的監聽更新,


以上,也就是兩種在表格中使用組件實作更新組件資料的方式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/323463.html
標籤:其他
上一篇:JavaScript原型和原型鏈(必考三座大三之一)
下一篇:ToDoList你值得擁有 ??
