题目描述
搜索关键词缓存记录没有做去重处理
题目来源及自己的思路
源码是网上的开源项目
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
let App = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
recentSearch: [],
searchValue: '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
// 获取历史搜索
this.getRecentSearch();
},
/**
* 获取历史搜索
*/
getRecentSearch: function () {
let recentSearch = wx.getStorageSync('recentSearch');
this.setData({ recentSearch });
},
/**
* 绑定输入值
*/
getSearchContent: function (e) {
this.data.searchValue = e.detail.value;
},
/**
* 搜索提交
*/
search: function () {
if (this.data.searchValue) {
// 记录最近搜索
let recentSearch = wx.getStorageSync('recentSearch') || [];
recentSearch.unshift(this.data.searchValue);
wx.setStorageSync('recentSearch', recentSearch)
// 跳转到商品列表页
wx.navigateTo({
url: '../category/list?search=' + this.data.searchValue,
})
}
},
/**
* 清空最近搜索记录
*/
clearSearch: function () {
wx.removeStorageSync('recentSearch');
this.getRecentSearch();
},
/**
* 跳转到最近搜索
*/
goSearch: function (e) {
wx.navigateTo({
url: '../category/list?search=' + e.target.dataset.text,
})
},
})
你期待的结果是什么?实际看到的错误信息又是什么?
虽然对功能没有多大影响,作为一个不折扣的完美主义者,肯请大神支招化腐朽为神奇,真诚感激!
每次添加记录前先从之前记录过滤掉当前关键词, 保证不会重复, 而且新的关键词排在最前