我在這樣的狀態變數中有一組專案。
const [items, setItems] = useState(["item1", "item2", "item3")])
如何替換陣列中的一項。下面是我用來完成它的方法。
{
let dummy = [...items]
dummy[1] = "items 1.1"
setItems(dummy)
}
但是,我認為這根本不是正確的方法。
有沒有其他簡化的方法來解決這個問題?提前致謝
uj5u.com熱心網友回復:
或者你可以使用 slice
const idxToChange = 1
setItems([items.slice(0, idxToChange), "items 1.1", items.slice(idxToChange 1, items.length)])
https://www.w3schools.com/jsref/jsref_slice_array.asp 的一個很好的解釋slice
uj5u.com熱心網友回復:
您的解決方案沒有錯,但我會添加額外的檢查以確保該items陣列包含您希望更改的元素。
let dummy = [...items]
if(typeof dummy[1] == 'undefined') {
// does not exist
}
else {
// does exist
dummy[1] = "items 1.1"
}
setItems(dummy)
uj5u.com熱心網友回復:
這是另一種方法。我不知道它對你來說是否更干凈。
setItems(items=> items.map((item,idx)=> idx===1?"items 1.1":item));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/347518.html
標籤:反应原生
上一篇:Android有時會在后臺重新啟動我的ReactNative應用程式
下一篇:React,useState-為什么在作為(props)傳遞時無法檢索狀態值,但在傳遞({props})時卻可以檢索狀態值?
