2017-08-17 84 views
2

如何从Mobx可观察数组中删除项目?React-Native Mobx删除项目

这是观察到:

@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总是返回-1。

回答

2

您正在尝试查找值为id的元素的索引,但是您想要查找对象的id等于id的位置。

你可以例如用一个过滤器代替:

@action removeEvento (id, title) { 
    var filteredEventos = this.eventos.filter(evento => evento.id !== id); 
    this.eventos.replace(filteredEventos); 
} 
+0

噢好吧,这很有道理!代码完美无缺:)谢谢! – waze

+0

@waze太好了!没问题。 :) – Tholle