React-Native Mobx删除项目

时间:2017-08-17 10:11:51

标签: javascript react-native mobx

如何从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始终返回-1。

1 个答案:

答案 0 :(得分:2)

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

你可以,例如使用过滤器替换:

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