3 回答
TA贡献1898条经验 获得超8个赞
删除项目本身后,只需更换阵列
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));
};
因为设置项目,如果它在那里替换它的值检查在这里
TA贡献1744条经验 获得超4个赞
由于已经在过滤数据并更新状态,因此可以添加第二个参数作为setState回调。在回调中,您可以从状态中获取更新的包,并将其设置为替换localStorage中的值。
你可以这样
removeDevice = (e, deviceTitle) => {
this.setState(prevState => ({
bag: prevState.bag.filter(d => d !== deviceTitle)
}), () => {
const { bag } = this.state;
localStorage.setItem("list", JSON.stringify(bag))
});
};
添加回答
举报