问题描述
我必须从UI中选择一些元素,然后需要将每个所选ID的ID存储在localstorage中。当用户取消选择它时,也应该从本地存储中删除该值。对于我所做的
@observable marks = JSON.parse(localStorage.getItem('marks')) || [];
@action handleChange = Mid => {
let getMarks = JSON.parse(localStorage.getItem('marks')) || [];
let foundindex = getMarks.indexOf(Mid)
if (foundindex > -1) {
remove(getMarks,id => id === Mid)
} else {
localStorage.setItem('marks',JSON.stringify([Mid]))
}
}
在这里,localStorage添加了唯一的最近值,而while并没有设置为我正在使用它呈现的observable
。
我该如何解决?
谢谢。
更新的修复程序
@action handleChange = Mid => {
let foundindex = this.marks.indexOf(Mid)
if (foundindex > -1) {
remove(this.marks,id => id === Mid)
localStorage.setItem('marks',JSON.stringify(this.marks))
} else {
this.marks.push(Mid)
localStorage.setItem('marks',JSON.stringify(this.Mid))
}
}
解决方法
要添加新项目,您要将其推入现有阵列。相反,您将使用一个元素创建一个新数组,并忽略以前存储的任何内容
更改:
localStorage.setItem('marks',JSON.stringify([Mid]))
收件人
getMarks.push(Mid)
localStorage.setItem('marks',JSON.stringify(getMarks))