React-Native Mobx 删除项目
React-Native Mobx remove item
如何从 Mobx observable 中的数组中删除一个项目?
这是可观察的:
@persist('list') @observable eventos = []
这是我向列表中添加项目的方式:
@action addEvento (id, title) {
this.eventos.push({
id: id,
nome: title,
})
}
这是我试图删除的内容:
@action removeEvento (id, title) {
var i = this.eventos.indexOf(id);
console.log(i)
if(i != -1) {
this.eventos.splice(i, 1)
return this.eventos
}
}
但它总是删除最后添加的项目,而不是我要删除的项目。另外,indexOf 总是 returns -1.
您正在尝试查找值为 id
的元素的索引,但您想查找对象的 id
等于 id
的位置。
你可以,例如使用过滤器并替换为:
@action removeEvento (id, title) {
var filteredEventos = this.eventos.filter(evento => evento.id !== id);
this.eventos.replace(filteredEventos);
}
如何从 Mobx observable 中的数组中删除一个项目?
这是可观察的:
@persist('list') @observable eventos = []
这是我向列表中添加项目的方式:
@action addEvento (id, title) {
this.eventos.push({
id: id,
nome: title,
})
}
这是我试图删除的内容:
@action removeEvento (id, title) {
var i = this.eventos.indexOf(id);
console.log(i)
if(i != -1) {
this.eventos.splice(i, 1)
return this.eventos
}
}
但它总是删除最后添加的项目,而不是我要删除的项目。另外,indexOf 总是 returns -1.
您正在尝试查找值为 id
的元素的索引,但您想查找对象的 id
等于 id
的位置。
你可以,例如使用过滤器并替换为:
@action removeEvento (id, title) {
var filteredEventos = this.eventos.filter(evento => evento.id !== id);
this.eventos.replace(filteredEventos);
}