微信小程序> 小程序地址传值-微信小程序获取用户信息之后,页面间的传值-小程序页面传值

小程序地址传值-微信小程序获取用户信息之后,页面间的传值-小程序页面传值

浏览量:2643 时间: 来源:我不淑女girl

1.我们进入一个小程序,首先会请求获取用户昵称及头像,从“首页”获取的资料要传值到“我的”这个页面里面我开始做的时候,在“我的”这个页面获取到的用户信息可以传值给“首页”,但是“首页”获取到的资料无法传给“我的”,费劲一番周折(原谅我太笨),解决了,代码如下:index页面即首页:wxml代码:

viewviewwx:if="{{!hasUserInfo&&canIUse}}"class="modal-mask"catchtouchmove="preventTouchMove"/viewbuttonwx:if="{{!hasUserInfo&&canIUse}}"class="modal-dialog"open-type="getUserInfo"bindgetuserinfo="getUserInfo"一键登录/buttonblockimagesrc="{{userInfo.avatarUrl}}"mode="cover"bindtap='headImage'/imagetext{{userInfo.nickName}}/text/block/view

2.js代码:

//获取应用实例constapp=getApp()Page({data:{userInfo:{},hasUserInfo:false,canIUse:wx.canIUse('button.open-type.getUserInfo')},onShow:function(){if(app.globalData.userInfo){this.setData({userInfo:app.globalData.userInfo,hasUserInfo:true})}elseif(this.data.canIUse){//由于getUserInfo是网络请求,可能会在Page.onLoad之后才返回//所以此处加入callback以防止这种情况app.userInfoReadyCallback=res={this.setData({userInfo:res.userInfo,hasUserInfo:true})}}else{//在没有open-type=getUserInfo版本的兼容处理wx.getUserInfo({success:res={app.globalData.userInfo=res.userInfothis.setData({userInfo:res.userInfo,hasUserInfo:true})}})}},getUserInfo:function(e){wx.setStorageSync('userInfo',e.detail.userInfo);app.globalData.userInfo=e.detail.userInfoconsole.log(app.globalData.userInfo)this.setData({userInfo:e.detail.userInfo,hasUserInfo:true})},bindViewTap:function(){this.setData({hasUserInfo:false})},})

3.mine页面即我的:wxml代码:

viewviewwx:if="{{!hasUserInfo&&canIUse}}"class="modal-mask"catchtouchmove="preventTouchMove"/viewbuttonwx:if="{{!hasUserInfo&&canIUse}}"class="modal-dialog"open-type="getUserInfo"bindgetuserinfo="getUserInfo"一键登录/buttonblockimagesrc="{{userInfo.avatarUrl}}"mode="cover"bindtap='headImage'/imagetext{{userInfo.nickName}}/text/block/view

4.js代码:

constapp=getApp()Page({data:{userInfo:{},hasUserInfo:false,canIUse:wx.canIUse('button.open-type.getUserInfo')},onShow:function(){if(app.globalData.userInfo){this.setData({userInfo:app.globalData.userInfo,hasUserInfo:true})}elseif(this.data.canIUse){//由于getUserInfo是网络请求,可能会在Page.onLoad之后才返回//所以此处加入callback以防止这种情况app.userInfoReadyCallback=res={this.setData({userInfo:res.userInfo,hasUserInfo:true})}}else{//在没有open-type=getUserInfo版本的兼容处理wx.getUserInfo({success:res={app.globalData.userInfo=res.userInfothis.setData({userInfo:res.userInfo,hasUserInfo:true})}})}},getUserInfo:function(e){wx.setStorageSync('userInfo',e.detail.userInfo);app.globalData.userInfo=e.detail.userInfoconsole.log(app.globalData.userInfo)this.setData({userInfo:e.detail.userInfo,hasUserInfo:true})},bindViewTap:function(){this.setData({hasUserInfo:false})},})

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎