我已经将添加历史搜索写在了里面,为什么没实现过滤效果?
来源:14-10 搜索实现2

迷失的小麦
2020-04-25
onConfirm(event){
this.setData({
searching:true
});
const word=event.detail.value;
bookModel.search(0,word).then(res => {
this.setData({
dataArray:res.books
});
//将代码写在里面为了使得正确的关键字在历史搜索里保存下来
keywordModel.addToHistory(word);//添加历史搜索的关键字
});
}
所谓的过滤就是:老师说的将keywordModel.addToHistory(word);写在书籍搜索获取数据之后的回调中,就可以将数据库中没有的关键词不显示在历史搜索中
写回答
2回答
-
我没有看明白这个过滤。什么意思,数据库中没有的关键词?
042020-04-26 -
迷失的小麦
提问者
2020-04-26
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);//重新写入缓存,覆盖之前的值
}
}
另外,这段代码为什么是刷新页面后执行?是不是因为没有setData?
012020-04-26
相似问题