统一回复,这是我很久以前学习小程序时做的项目,当时是没问题的,最近很多人评论说收藏功能实现不了,但是因为工作原因没空弄以下是我当时自学小程序的视频地址,里面有收藏的功能的视频,如有需要可以去看看
添加链接描述添加链接描述给detail.wxml中的收藏图标添加属性:detail.wxml
catchtap是点击事件,wx:if的用法如下:catchtapwx:ifdetail.jsdetail.js
data: {

detailObj:{},

index:null,

// 是否收藏

isCollected:false
},
handleCollection(){

let isCollected = !this.data.isCollected

this.setData({

// 下面本来是这样子的:isCollected=isCollected,可以简写

isCollected

})

//提示用户

wx.showToast({

title: isCollected ? '收藏成功' : '取消收藏',

icon:'success'

})
},
data: {

detailObj:{},

index:null,

// 是否收藏

isCollected:false
},
handleCollection(){

let isCollected = !this.data.isCollected

this.setData({

// 下面本来是这样子的:isCollected=isCollected,可以简写

isCollected

})

//提示用户

wx.showToast({

title: isCollected ? '收藏成功' : '取消收藏',

icon:'success'

})
},结果图看起来是可以了,但是不难发现当你退出页面再进来按钮又被重置了…
所以我们要把按钮状态保存下来.在handleCollection函数中继续添加:handleCollection
//点击收藏图标后缓存数据到本地

//把data中的index放到新let出来的index中,因为下面要把index也存进去,要用index来判断你收藏了哪个页面

let { index } = this.data;



//首先去看一下缓存的数据

wx.getStorage({

key:'isCollected',

success:(data)=>{

let obj = data.data;

//如果有,则刷新,没有则追加

obj[index] = isCollected;

wx.setStorage({

key: 'isCollected',

data: obj,

success: () => {


}

});

}

})
//点击收藏图标后缓存数据到本地

//把data中的index放到新let出来的index中,因为下面要把index也存进去,要用index来判断你收藏了哪个页面

let { index } = this.data;



//首先去看一下缓存的数据

wx.getStorage({

key:'isCollected',

success:(data)=>{

let obj = data.data;

//如果有,则刷新,没有则追加

obj[index] = isCollected;

wx.setStorage({

key: 'isCollected',

data: obj,

success: () => {


}

});

}

})在onLoad生命周期函数中添加逻辑:onLoad
//根据本地缓存的数据判读用户是否收藏当前文章

let detailStorage = wx.getStorageSync('isCollected')

//如果没有收藏

if (!detailStorage){

//初始化一个空的对象

wx.setStorageSync('isCollected', {});

}

//如果收藏了

if (detailStorage[index]){

this.setData({

isCollected: true

})

}
//根据本地缓存的数据判读用户是否收藏当前文章

let detailStorage = wx.getStorageSync('isCollected')

//如果没有收藏

if (!detailStorage){

//初始化一个空的对象

wx.setStorageSync('isCollected', {});

}

//如果收藏了

if (detailStorage[index]){

this.setData({

isCollected: true

})

}总结总结总结