老师后面将代码写进了请求数据成功的回调函数中,可是改代码目的并没有实现(历史搜索)

来源:14-7 实现历史搜索

迷失的小麦

2020-04-26

需要改变位置的代码:keywordModel.addToHistory(word);
目的:将输入的关键字中的在数据库中没有的关键字不显示在历史搜索中
我的代码哪里错了

    onConfirm(event){
      this.setData({
        searching:true,
        loadingCenter:true
      });
      this.initialize();

      const word = event.detail.value || event.detail.text;
      bookModel.search(0,word).then(res => {
        this.setMoreData(res.books);
        this.setTotal(res.total);
        this.setData({
          //dataArray:res.books,
          q:word,
          loadingCenter:false
        });
        //将代码写在里面为了使得正确的关键字在历史搜索里保存下来
        keywordModel.addToHistory(word);//添加历史搜索的关键字
      });
    }
  addToHistory(keyword){
    let words=this.getHistory();
    const has=words.includes(keyword);
    if(!has){//如果没有这个输入的关键字
      const length=words.length;
      if(length>=this.maxLength){
        words.pop();//将超出的旧记录清除
      }
      words.unshift(keyword);//将新的搜索记录添加到队列前面
      wx.setStorageSync(this.key, words);//重新写入缓存,覆盖之前的值
    }
  }

图片描述
比如hhhhh用户随便写的字符串,如果输入的字符串返回的数据中没有hhhhh,就不会添加历史记录。但是没有实现这个效果,截图可以看出hhhhh出现在了历史搜索中

写回答

1回答

7七月

2020-04-26

我没有说过也没有做过 服务器搜不到就不添加的逻辑啊

0
2
迷失的小麦
14-9 搜索实现1 大约10:15的时候好像是这样说的
2020-04-26
共2条回复

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4791 学习 · 2133 问题

查看课程