收藏
回答

为什么自定义组件data取app.globalData值数值型的正常字符串的取不出来?

// components/navigation/index.js
const app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    useravatarUrl: app.globalData.avatarUrl,//这个值就取不了,console显示为undefined,下面4个取值又是正常的
    navBarHeight: app.globalData.navBarHeight, //导航栏高度
    menuRight: app.globalData.menuRight, // 胶囊距右方间距(方保持左、右间距一致)
    menuBotton: app.globalData.menuBotton,
    menuHeight: app.globalData.menuHeight
  },

就只有useravatarUrl取不了值,显示为undefined,其它4个取值正常,各位大神来解决一下。。。

回答关注问题邀请回答
收藏

2 个回答

  • brave
    brave
    2022-01-25

    异步。。。

    2022-01-25
    有用 1
    回复 1
    • 康辉
      康辉
      发表于移动端
      2022-01-25
      怎么解决啊?
      2022-01-25
      回复
  • Spencer[^ -~]
    Spencer[^ -~]
    2022-01-25

    getApp方法并不一定总是能返回有效的值。

    在app冷启动阶段,onLaunch期间,getApp在低版本上表现为空指针,高版本顶多给你返回你传入的对象。

    你应该保证如下几点

    1.你准备收集的数据封装成function

    2.在onLaunch以后再调用你封装的function获取填充数据

    3.获取数据后,更新你组件里的数据。

    2022-01-25
    有用
    回复 2
    • 康辉
      康辉
      发表于移动端
      2022-01-25
      为什么其它几个取值又正常的?
      2022-01-25
      回复
    • Spencer[^ -~]
      Spencer[^ -~]
      2022-01-25回复康辉
      还是因为它是异步的,我给出的是解决办法,你实践一下就行了。
      其他给你回复原因的,你要解决方案。
      我给你解决方案,就不要再要原因了。
      2022-01-25
      1
      回复
登录 后发表内容