小程序项目别的页面初始化拿到的值为两种状态(已解决)

小程序项目别的页面初始化拿到的值为两种状态,其他页面拿不到app.js全局globalData下全局的cookie

app.js文件

onLaunch: function () {
    console.log(‘app-onLaunch‘)
    this.getUserInfo();

  },
  onShow:function(){
    console.log(‘app-onShow‘)
  },
  // 获取用户信息,登录

  getUserInfo: function (callBack) {
    let that = this;
    if (this.globalData.userInfo) {
      typeof cb == ‘function‘ && cb(this.globalData.userInfo)
    } else {
      wx.login({
        success: function (res1) {
          console.log(‘res11111111111111111‘,res1);
          if (res1.code) {
            //授权
            wx.getUserInfo({
              success: res => {
                // 可以将 res 发送给后台解码出 unionId
                //console.log(‘ryy-getUserInfo‘, res.userInfo)
                that.globalData.userInfo = res.userInfo

                wx.request({
                  url: that.config.HOST + ‘/user/userLogin.do‘,
                  data: {
                    code: res1.code, //返回openid
                    headimgurl: res.userInfo.avatarUrl,
                    nickname: res.userInfo.nickName,
                    city: res.userInfo.city,
                    appid: that.globalData.AppId,
                    province: res.userInfo.province,
                    shop_id: ‘10001‘,
                  },
                  header: {
                    ‘content-type‘: ‘application/json‘
                  },
                  success: function (res) {
                    console.log(‘tets1‘, res)
                    if (res && res.statusCode == 200) {
                      wx.setStorageSync(‘session_id‘, res.data.data.session_id)
                      that.globalData.header.Cookie = ‘JSESSIONID=‘ + res.data.data.session_id;
                      that.globalData.is_vip = res.data.data.is_vip;
                      console.log(‘that.globalData-------------------++++++++++++++++++++‘, that.globalData)
                      //console.log(‘that.globalData.header‘, that.globalData.header.Cookie)
                      //console.log(‘ryy-qest‘ + JSON.stringify(res.data), res.data.data)
                      //有些操作需要登陆之后才能获取,但又是和login验证同时进行的话就需要加入到回调函数
                      if (callBack) {
                        callBack()
                      }

                    }

                  }
                })
              },

全局

globalData: {
    userInfo: null,
    openid:null,
    user_id:null,
    code:null,
    header:{Cookie:null},
    session_id:null,
    img_domain:null,
    telephone:null,
    is_vip:null,
    getInit:{},
  },

其他page文件下的index.js页面

放在onload或者是其他生命周期内打印不出来cookie,一个是空值,一个是有值的
旁边出来一个感叹号提示:Value below was evaluated just now
但如果打印,console.log(app.globalData.header.Cookie)出来的是null
但是在自定义方法里边比如点击获取验证码里就能够获取到cookie的值

————————————————————问题已解决—————2018/4/21/15:10—————————————————————

在onLaunch,去掉

this.getUserInfo()的方法

在所需要的页面进行引入,app.getUserInfo(自定义的方法)

要了解小程序的生命周期,onLaunch只执行一次,反复执行的话会出现问题。如果需要进行其他操作可以放在callback里边,这里又涉及到了小程序比较恶心的异步了。可以去了解一下小程序生命周期,以及es6的promise

贴下解决代码:

原文地址:https://www.cnblogs.com/web1/p/8901689.html

时间: 2024-10-14 00:57:02

小程序项目别的页面初始化拿到的值为两种状态(已解决)的相关文章

navigate 如何突破小程序的五层页面限制?

微信小程序中的页面导航 API 有三个,两个跳转新页面的 API 分别为 wx.navigateTo 和 wx.redirectTo,还有一个 API ,名为 wx.navigateBack,它用于返回页面.wx.navigateBack 在小程序的初始版本中只能回到上一个页面,在最新版本(0.10.102800)的更新中给 navigateBack 添加了一个参数 delta,用于决定需要返回几层页面.navigator 组件的默认跳转方式与 wx.navigateTo 相同,而如果添加 re

【小程序源码案例】微信小程序项目开发案例分享

作者:web小二本文标签: 微信小程序 小程序源码案例 小程序项目小程序的开发,并不是适合所有公司,我今天跟大家分享小程序方面的教程,主要是供大家学习使用.学习这种东西,有时候则是单纯的喜欢,没有任何目的,很单纯的为了好玩,记得很早之前学flash,没有想法,就是觉得好玩,纯娱乐爱好而已.到后来玩视频剪辑也是出于同样的原因,不图钱财名利,只是图自己个人爱好娱乐. 但是,学习,有时候则是需要有明确目的,特别是关系到自己吃饭问题的时候,你就需要非常有目的去学习,并且还需要制定好学习的计划与目标,希望

微信小程序详解——页面之间的跳转方式【路由】和参数传递

微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能.今天我们来研究小程序页面之间的跳转方式. 1.先导 在Android中,我们Activity和Fragment都有栈的概念在里面,微信小程序页面也有栈的概念在里面.微信小程序页面跳转有四种方式: 1.wx.navigateTo(OBJECT): 2.wx.redirectTo(OBJECT): 3.wx.switchTab(OBJECT): 4.wx.navi

小程序开发之页面布局

Flex布局又称弹性布局,在小程序开发中比较适用.因此将Flex布局相关属性整理如下,搞清楚了这个布局,小程序开发的页面布局就不在话下了. 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. 2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现

小程序项目如何防盗?

小程序项目如何设置资源的防盗链? 做过前端,或对小程序有些了解的同学都知道,小程序是没有域名访问概念的,访问的路径都是以:"/pages/index"."/pages/my"这种方式进行页面跳转的.域的概念从何而来? 事情是这样的,前段时间突然冒出个想法,大家上下班,有些人离公司比较远,回家路上/地铁上,可能都会比较无聊,看看新闻.听听音乐啥的. 但是对于IT行业的程序员们来说,入了IT领域就意味着,永远有学不完的东西,经常就有看到一些人在地铁拿着一本书在看,于是我

小程序-跳转页面的方法

刚开始编写小程序时,页面跳转一直采用wx.navigateTo, 但是当我一直来回跳转后,页面就没反应了.今天师傅提示我还可以用其他的方法跳转,现在记录下来,怕时间一久我就给忘了 需求:从 index.wxml 页面,跳转到 aaa.wxml 页面 方法一:WXML页面实现 1.<navigator url = "../aaa/aaa">跳转到新页面</navigator> 2.<navigator url = "../aaa/aaa"

小程序项目之再填坑

简诉 是的,真的,你没有看错,我就是上次那个加薪的,但是现在问题来了,最近又搞了个小程序的需求,又填了不少坑,其中的辛酸就不说了,说多了都是泪,此处省略三千字 ---^--,说重点吧,反正最后就是差点这让老板叫走人了,你说优秀不优秀-. 前段时间网上一直说的"<你可以骂那些中年人,尤其是有车有房的-->",虽然我没有房.也没有车,但也坚决不做那个可以随便骂的中年人(人到中年不如狗??),不存在的啦,这个仇宝宝已经记下了,先分享一下最近遇到的几个坑吧. -- 我是首席填坑官-

小程序 - 子级页面返回父级,并把子级参数带回父级

(小的资深尚浅,不足的地方欢迎提bug,勿喷!!!) 说到页面之间的跳转,跳转中顺带些参数,在程序猿的生活中是很常用的,下面就让我们来看看吧! 这里有两种方法来解决: 方法一 就是我们常用的本地储存,在当前子级页面用( wx.setStorage  ||  wx.setStorageSync )储存好,跳转到父级页面的时候取出,采用( wx.getStorage  ||  wx.getStorageSync ),在这里,退出的时候一定要记得清除缓存哦!!!( wx.clearStorage  |

小程序自定义单页面、全局导航栏

摘要: 小程序开发技巧. 作者:小白 原文:小程序自定义单页面.全局导航栏 Fundebug经授权转载,版权归原作者所有. 需求 产品说小程序返回到首页不太方便,想添加返回首页按钮,UI说导航栏能不能设置背景图片,因为那样设计挺好看的. 需求分析并制定方案 这产品和UI都提需求了,咱也不能反驳哈,所以开始调研,分析可行性方案:1.可以添加悬浮按钮.2.自定义导航栏. 添加悬浮按钮,是看起来是比较简单哈,但是感觉不太优雅,会占据页面的空间,体验也不太好.所以想了下第二种方案,自定义导航栏既可以实现