【问题标题】:vue filtering method how it worksvue过滤方法是如何工作的
【发布时间】:2022-04-19 02:40:43
【问题描述】:

这是我尝试做的一些代码

  deleteajobewith_events(event){

     const data =event.store.readQuery({
        query: ClientJobesList,
        variables: {id:1} 
      });
    data.client.jobes.filter(jobee=>jobee.id != 101);

    console.log(data);
    event.store.writeQuery({ query: ClientJobesList, data});
 }

如果我在控制台记录“数据”,它会显示相同的数据而不进行过滤

这是关于“数据”对象的提示

 {
 "data": {
"client": {
  "id": "1",
  "client_name": "Marouane",
  "jobes": [
    {
      "id": "101",
      "title": "cbkvjk",
      "order": 88,
      "client_id": "1"
    },
  .........
    ]
  }
}
}

【问题讨论】:

    标签: javascript vue.js graphql apollo


    【解决方案1】:

    Filter创建新数组,数据必须是同一类型(101和“101”不一样)所以尝试如下:

     const data= {
      "client": {
        "id": "1",
        "client_name": "Marouane",
        "jobes": [
          {
            "id": "101",
            "title": "cbkvjk",
            "order": 88,
            "client_id": "1"
          },
          {
            "id": "102",
            "title": "aaa",
            "order": 99,
            "client_id": "2"
          },
        ]
      }
    }
    data.client.jobes = data.client.jobes.filter(jobee=>jobee.id !== '101');
    console.log(data)

    【讨论】:

    • 谢谢你,先生,它工作得很好
    • @lakouis marouane 不客气,干杯 :)
    【解决方案2】:

    你还没有将过滤后的数据分配给前一个:

      deleteajobewith_events(event){
    
      const data =event.store.readQuery({
        query: ClientJobesList,
        variables: {id:1} 
       });
      data.client.jobes = data.client.jobes.filter(jobee=>jobee.id != 101);
    
       console.log(data);
       event.store.writeQuery({ query: ClientJobesList, 
    data});
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-02
      • 2017-12-31
      • 2014-08-26
      • 1970-01-01
      • 2013-03-11
      • 2019-05-20
      • 2012-04-21
      • 2016-07-26
      • 2018-06-26
      相关资源
      最近更新 更多