老师为什么我一点进去就是收藏状态呀。。
btw我用ctrl+f把该页面所有的postCollected都替换成了collected
代码如下:
post-detail.wxml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!-- 原则:先静后动,先样式后数据 --> < view class = "container" > < image class = "head-image" src = "{{headImgSrc}}" ></ image > < view class = "author-date" > < image class = "avatar" src = "{{avatar}}" ></ image > < text class = "author" >{{author}}</ text > < text class = "const-text" >发表于</ text > < text class = "date" >{{dateTime}}</ text > </ view > < text class = "title" >{{title}}</ text > < view class = "tool" > < view class = "circle-img" > < image wx:if = "{{collected}}" bind:tap = "onCollectionTap" src = "/images/icon/collection.png" ></ image > < image wx:if = "{{!collected}}" bind:tap = "onCollectionTap" src = "/images/icon/collection-anti.png" ></ image > < image bind:tap = "onShareTap" class = "share-img" src = "/images/icon/share.png" ></ image > </ view > < view class = "horizon" ></ view > </ view > < text class = "detail" >{{detail}}</ text > </ view > |
posts.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // pages/posts/posts.js //小程序中最基本的导入语法: var postsData = require( '../../data/posts-data.js' ) Page({ // 页面的初始数据 data: { }, // 生命周期函数--监听页面加载 onLoad: function (options) { this .setData({ posts_key: postsData.postList }); // this.setData({posts_content}); //console.log('onload') }, //点击新闻列表中的item触发的事件 onPostTap: function (event){ //console.log(event) var postId = event.currentTarget.dataset.postid wx.navigateTo({ url: 'post-detail/post-detail?id=' +postId, }) } }) |
post-detail.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | var postsData = require( '../../../data/posts-data.js' ) // pages/posts/post-detail/post-detail.js Page({ /** * 页面的初始数据 */ data: { collected: true }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var postId = options.id this .data.currentPostId = postId var postData = postsData.postList[postId] this .setData({ //postData:postData 可以省略成下行 ...postData }) var postsCollected = wx.getStorageSync( 'postsCollected' ) //先判断有没有缓存 if (postsCollected){ var collected = postsCollected[postId] if (collected){ this .setData({ collected:collected }) } } else { var postsCollected = {} postsCollected[postId] = false wx.setStorageSync( 'postsCollected' ,postsCollected) } }, // 点击收藏按钮收藏文章 onCollectionTap: function (){ var postsCollected = wx.getStorageSync( 'postsCollected' ) var collected = postsCollected[ this .data.currentPostId] collected = !collected postsCollected[ this .data.currentPostId] = collected wx.setStorageSync( 'postsCollected' ,postsCollected) this .setData({collected}) }, //点击分享按钮删除缓存 onShareTap: function (){ }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } }) |
19
收起
正在回答
2回答
同学你好,这边将代码注释掉已经不是缓存状态了:
建议清除缓存重新编译试试:
祝学习愉快!
3.WebAPP开发与小程序
- 参与学习 人
- 提交作业 622 份
- 解答问题 6815 个
微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧