從 React State 中刪除項目
問題涉及從 React 狀態中的陣列中刪除項目,例如「Bob」。挑戰來自於必須保持陣列的完整性而不留下任何空缺。
之前,嘗試使用刪除突變手動刪除 Bob 失敗了。相反,建議採用遵循 React 原則的解決方案。
不可變數組操作
React 禁止直接操作狀態值。若要變更狀態內的數組,必須建立新副本。
Array.prototype.filter()
最直接的方法是利用 Array.prototype。 filter() 建構一個新數組,省略要刪除的項目。例如:
removePeople(e) { this.setState({people: this.state.people.filter(function(person) { return person !== e.target.value; })}); }
此程式碼透過迭代 this.state.people 中的每個元素來建立一個新陣列。如果名稱不等於要刪除的項目(例如“Bob”),則它將保留在新數組中。
結論
利用filter()確保狀態不變性並維護數組的完整性,消除刪除留下的任何空槽。
以上是如何在不留間隙的情況下從 React State 中刪除項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!