3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
刪除項(xiàng)目本身后,只需更換陣列
removeDevice = (e, deviceTitle) => {
this.setState(prevState => ({
bag: prevState.bag.filter(d => d !== deviceTitle)
}));
// actual localStorage item removing
let devicesArray = JSON.parse(localStorage.getItem("list"))
devicesArray.splice(devicesArray.indexOf(deviceTitle), 1)
localStorage.setItem("list", JSON.stringify(devicesArray));
};
因?yàn)樵O(shè)置項(xiàng)目,如果它在那里替換它的值檢查在這里

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊
由于已經(jīng)在過(guò)濾數(shù)據(jù)并更新?tīng)顟B(tài),因此可以添加第二個(gè)參數(shù)作為setState回調(diào)。在回調(diào)中,您可以從狀態(tài)中獲取更新的包,并將其設(shè)置為替換localStorage中的值。
你可以這樣
removeDevice = (e, deviceTitle) => {
this.setState(prevState => ({
bag: prevState.bag.filter(d => d !== deviceTitle)
}), () => {
const { bag } = this.state;
localStorage.setItem("list", JSON.stringify(bag))
});
};
添加回答
舉報(bào)