本文共 2245 字,大约阅读时间需要 7 分钟。
// pages/news/news-detail/news-detail.jsvar newsData = require("../../data/newsdata.js")Page({ /** * 页面的初始数据 */ data: { // detailData:[] 这个初始化,我们也先不要 }, /** * 生命周期函数--监听页面加载 * 夜光:这个生命周期函数用的情况比较多 */ onLoad: function (options) { // console.log(options.newsid) console.log(); this.setData( // 这个不行嗯~ // detailData:newsData.initData[options.newsid] newsData.initData[options.newsid] ) this.setData({ newsid: options.newsid }) //测试本地存储 // wx.setStorageSync("key", "data") 我先把这句代码注释掉,接下来 // console.log(wx.getStorageSync("key")); //收藏存储数据格式 //var newsCollect={ // 0:true // 1:flase //} //第一次进入的时候,判断是否存在本地存储以及是否收藏,这里 var newsCollect = wx.getStorageSync("newsCollect"); //之后我们判断 //如果newsCollect存在,则代表以前收藏过或者取消过收藏 if (newsCollect){ var newCollect = newsCollect[options.newsid] this.setData({ collected: newCollect }) }else{ //第一次进入,根本不存在数据 var newsCollect = {}; //先定义一个空对象 //我把当前唯一id放到newsCollect对象中,默认指定false newsCollect[options.newsid] = false; //这里,我们需要对对象和数组之间的关系有较为深刻的认识 //放到本地存储之中去 wx.setStorageSync("newsCollect", newsCollect) } }, //下面,我们写一个方法 collectTap:function(event){ //我们一般写方法,都会先在控制台随便打印点东西,看看是否有问题 // console.log("1") // console.log(this.data.newsid); //打印看一下 有了效果,我们就可以干活了 // this.data.newsid //既然如此,我们在这个里面就要存储了 //注意:newsCollect是所有数据的集合 var newsCollect = wx.getStorageSync("newsCollect"); //这里,我们数据存储的格式就是newsCollect //这里需要提醒一下,第一次进来的时候就要判断数据是否存在 //但是这里并没有写,这里是进来之后的逻辑,这需要注意一下 //下面我们再定义一个一条的 // var newCollect = newsCollect var newCollect = newsCollect[this.data.newsid]; // console.log(newCollect) //这里是什么逻辑,如果是收藏的则被取消,如果未被收藏则收藏 newCollect = !newCollect; //反正取反么,true or false //更新到本地存储中 newsCollect[this.data.newsid] = newCollect; wx.setStorageSync("newsCollect", newsCollect); //newsCollect把这个集合的整体再放进去 //后台数据是更新了,那么前端的视图层如何更新呢 //下面就是渲染到,并更新视图 this.setData({ //暂时不知道,因为我们根本不知道视图是怎么改变的 collected: newsCollect[this.data.newsid] }) } })
转载地址:http://subo.baihongyu.com/