微信小程序多条数据同步缓存报错:
报错提示:test1.unshift is not a function; [Component] Event Handler Error @ pages/index/index#bound setsto
TypeError: test1.unshift is not a function
源代码:
Page({
confirm(e){
this.data=e.detail.value;
},
setsto(){
var test1=wx.getStorageSync('key1') || [];
test1.unshift(this.data);
wx.setStorageSync('key1', test1);
},
history(){
wx.navigateTo({
url: '../index/history',
})
},
})
原因:当第一次触发这个函数的时候,如果wx.getStorageSync(‘key1’)已经有值了,test将无法获取到[],所以下面使用test.unshift(this.data);会报错提示unshift没有定义
解决办法: 先用console.log(test1);查看下test1中获取的值,如果test1不是数组形式,说明没有获取到[],这时需要先用wx.removeStorageSync(‘key1’)移除key1的内容,再引入test1来获取key1的内容