收藏
回答

recycle-view 组件如何做数据筛选?

有个需求,用recycle-view做的长列表,加载完数据后,想通过关键词筛选想要的数据。

通过RecycleContext.splice()方法,可以筛选出数据,但是无法恢复原来数据,因为splice()方法改变了原数组。

pickValue: function (e) {
    const data = e.detail;
    // 拷贝原数组
    const countrys = JSON.parse(JSON.stringify(this.pureData.countrys));
    let len = 0;
    // 输入的长度 > 0,进行模糊查询
    if (data.cursor > 0) {
      const newData = countrys.filter(item => {
        if (item.desc.indexOf(data.value) > -1) {
          return item
        };
        return newData
      });
      len = newData.length;
      // 将查询结果通过RecycleContext.splice()方法从新渲染
      this.ctx.splice(0, countrys.length, newData, (res) => {
        console.log("res => ", res);
      })
    } else if (data.cursor === 0) {
      // 如果删除了输入关键词,就将结果恢复到原始结果
      console.log("countrys => ", this.pureData.countrys);
      this.ctx.splice(0, len, countrys, (res) => {
        console.log("res => ", res);
      })
    }
  },


回答关注问题邀请回答
收藏
登录 后发表内容