Javascript 反应本机Mobx删除项

Javascript 反应本机Mobx删除项,javascript,react-native,mobx,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) {

如何从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。

您试图查找具有值
id
的元素的索引,但您希望查找对象的
id
等于
id
的位置

例如,您可以使用过滤器并更换:

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

哦,好吧,这是有道理的!代码工作得很好:)谢谢@太棒了!没问题。:)