重新写入缓存就要报错
来源:8-13 showToast接口的应用
土豆love洋芋
2020-10-04
const postsCollect=this.data._postCollect
修改这了。为什么把本地缓存删除了。。重新写入缓存就要报错呢?写入的缓存就是String.就是不是obj了呢?
2回答
-
weixin_慕UI5143857
2020-10-05
这个问题是因为, 如果缓存为空, 读取缓存并赋值给postsCollect, postsCollect变量会被JS当作是一个字符串变量, 他就不是一个Object, 在使用JS对象的相关语法就会报错, 建议增加一个缓存是否为空的判断:
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
const postData = postList[options.pid]
this.data._pid = options.pid
//追加判断缓存是否为空, 为空postsCollected初始化一个空对象
let postsCollected
if(!wx.getStorageSync('posts_collected')){
postsCollected = {}
} else {
postsCollected = wx.getStorageSync('posts_collected')
}
this.data._postsCollected = postsCollected
let collected = postsCollected[this.data._pid]
//如果collected从没被定义过, 那么文章从来没被收藏过
if(collected === undefined) {
collected = false;
}
this.setData({
postData,
collected
})
}
212020-11-05 -
7七月
2020-10-04
描述问题请详细一些
00
相似问题