我们可以简单看一下利用wx.storage做得收藏功能:

//收藏  star(e){    let {id} = e.currentTarget.dataset var e = wx.getStorageSync('star') if(!e){       var e = this.data.arr  }    if(!this.data.star){  Toast.success('收藏成功');  e.push(this.data.detail)  }else{  Toast.fail('取消收藏');  var index = e.findIndex((v)=>{ return v.basicInfo.id == id })     e.splice(index,1)  }     this.setData({  star:!this.data.star,  arr:e,    })      wx.setStorageSync('star',this.data.arr)      console.log("收藏",this.data.arr)  },

出现得问题:

  1. 使用储存得时候第一个储存得值会覆盖另外一个,这是为什么呢?

解答:第二次数据会覆盖第一次的原因就是,每次在触发这个方法的时候初始化了数据。所以就会覆盖数据 所以在这个方法里边只需要先获取e这个数据,判断e是否存在值,当有值的时候往里边push 数据,当没有数据的时候直接将数据初始化

 var e = wx.getStorageSync('star')   if(!e){  var e = this.data.arr}

2.在点击收藏小星星得时候点击收藏发现回退历史再进来得时候明明收藏了但是小星星又暗了,那如何解决这个问题呢?怎样判断呢?

onLoad: function (options) {  // console.log(options.id)   // 注意:在收藏的时候判断的是传过来的id值而不是在点击收藏的时候重新赋值一个id,如果是重新赋值那么获取不到,执行顺序的问题   var id = options.id     // 收藏小红星:判断是否收藏   var star = wx.getStorageSync('star')  if(star.length!==0){     var k = star.findIndex((item)=>{  return item.basicInfo.id == id })   }     //  console.log(k)   //如果能找到   if(k>=0){     this.setData({    star:true   })   }else{   this.setData({  star:false    })  }}

3.那么wxml里面得如何添加事件得定义状态得

<view catchtap="star" data-id = "{{detail.basicInfo.id}}" class="infoo">  <van-icon name="star-o" size="70rpx" color="#999" custom-style="margin-right:10rpx;" wx:if="{{!star}}" /><van-icon name="star" size="70rpx" color="red" wx:if="{{star}}" custom-style="margin-right:10rpx;"/>
</view>//定义star得状态为false,不要忘了js方法里面更新状态哦!

使用微信小程序怎么用wx.storage来实现收藏功能?相关推荐

  1. 微信小程序相机组件wx.createCameraContext()的使用模拟微信拍照-后端为nodejs

    在本文 微信小程序相机组件wx.createCameraContext()的使用模拟微信拍照之前需要看看 微信小程序-获取用户session_key,openid,unionid - 后端为nodej ...

  2. [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转

    [微信小程序开发] 用wx.navigateTo方法跳转到tabBar中被定义了的页面将无法跳转 举例: main.js中: tabBar中 定义了页面"pages/test/main&qu ...

  3. 微信小程序-bug-调用wx.login()无响应的原因和解决方案

    微信小程序-bug-调用wx.login()无响应的原因和解决方案 参考文章: (1)微信小程序-bug-调用wx.login()无响应的原因和解决方案 (2)https://www.cnblogs. ...

  4. 微信小程序地理位置接口( wx.getLocation )申请方法

    在平时我们在开发小程序时,难免会需要用到用户的地理位置信息的功能,微信小程序开发者开放平台新规要求如果没有申请开通微信小程序地理位置接口( wx.getLocation ),是无法审核通过小程序的. ...

  5. 微信小程序与内嵌网页交互实现支付功能

    上个月,小程序开放了新功能,支持内嵌网页,所以我就开始了小程序内嵌网页之路,之前我只是个小安卓. 内嵌网页中可使用JSSDK 1.3.0提供的接口,可坑就来了,居然不支持支付接口的调用,经过一番研究, ...

  6. 云开发(微信-小程序)笔记(十四)---- 收藏,点赞(上)

    云开发(微信-小程序)笔记(十三)---- 注册登陆 1.简介 点赞,收藏等都是程序的最简单的功能,在现实的应用中也很常见.这里我就来给大家介绍一下小程序的这个功能. 图标下载地址 先去网站上http ...

  7. 微信小程序:超强大微信小程序源码下载内含几十款功能王者战力查询,游戏扫码登录,王者巅峰信息查询等等支持流量主收益和CPS收益

    这是一款特别强大的一款微信小程序源码 初步算了一下,该款小程序目前包含了几十个功能 具体功能如以下: 游戏扫码登录 王者战力查询 改名生成(多种生成方式) 头像框制作(N款模板) 王者巅峰数据查询 王 ...

  8. uni-app 微信小程序客服聊天和发送页面卡片功能

    微信小程序客服聊天和发送页面卡片功能实现步骤如下: (一):首先登录微信公众平台 :https://mp.weixin.qq.com/ 登录成功后找到----->功能-----> 客服-- ...

  9. 微信小程序、APP分销商城开发:分销功能模块设计

    前面我们讲了微信小程序商城基础营销功能:微信小程序商城.APP商城开发营销活动功能策划(拼团.砍价.秒杀.直播.优惠券等) 今天讲的分销系统更是强大的营销功能,它应该如何设计呢?我们的系统经过一点一点 ...

最新文章

  1. 论文笔记 A Spatial-Temporal Decomposition Based Deep Neural Network for TimeSeries Forecasting
  2. mysql选择索引逻辑_Mysql索引选择逻辑
  3. 基于SharePoint 的企业信息平台架构
  4. mod_fcgid FcgidMaxRequestLen 131072 问题
  5. C语言 5个数最值问题
  6. 微pe工具箱 系统安装教程_装系统必备 微PE工具箱制作启动U盘教程
  7. Redis命令之scan、sscan、hscan、zcan
  8. Unity实现鼠标控制摄像机围绕中心点的旋转和缩放
  9. Mac m1 tensorflow 内核似乎挂掉了,它很快将自动重启
  10. Node实现支付宝网页支付流程(沙箱环境)
  11. 接口文档编辑工具+接口文档编写
  12. agx上搭建ros2
  13. C语言开发过程中段错误处理方法之经典
  14. pci配置基地址_PCI/PCIe基础——配置空间
  15. vscode中建立vue项目
  16. iOS使用GCDSocketManager实现长连接
  17. Integrate就医服务平台
  18. 发明专利申请流程和时间
  19. Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球
  20. “网上购车平台”又出低首付上私户新模式

热门文章

  1. 百度360腾讯竞购搜狗
  2. uni-app学习日记7
  3. Photoshop 无法安装Tych Panel,提示:could not create folder Run Photoshop as administrator or create the ...
  4. iPhone 越狱版本打包
  5. 记录——python与华为云对象存储服务OBS
  6. 云计算、社交网络和移动互联网------转自月光博客
  7. 通过大白菜u盘启动工具备份/还原/重装/激活系统/修复引导 实操教程(上)
  8. C++求最大与最小值
  9. 华顺信安 白帽汇安全研究院二面复盘
  10. C++全角与半角互转