收藏
回答

为什么全局变量无法给子页面变量赋值?

一、定义了一个全局变量

二、能够获取全局变量的值,但是给data中变量ranking赋值时确是空值

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

4 个回答

  • 曹孟良
    曹孟良
    2021-11-07

    异步问题,直白点说,就是你赋值的时候,这个globalData还是空的,你需要用await或者promise解决

    2021-11-07
    有用 1
    回复 2
    • 莫子
      莫子
      2021-11-08
      还不是太明白,能否针对我的情况给个解决方案,谢谢
      2021-11-08
      回复
    • 曹孟良
      曹孟良
      2021-11-08回复莫子
      首先你的判断写错了,不要写判断长度为1,因为你明显空值的时候ranking数组长度还是1。你可以判断这个值是不是为null。如果要解决异步问题,你可以去了解下promise,把获取ranking里面的时间的那个函数用promise打包,然后再在你当前判断函数前加上promise.then(),具体不是很好说明白,你去查查promise用法
      2021-11-08
      回复
  • 拾忆
    拾忆
    2021-11-07

    异步问题

    2021-11-07
    有用 1
    回复 1
    • 莫子
      莫子
      2021-11-08
      能否针对我的情况给个解决方案,谢谢
      2021-11-08
      回复
  • 莫子
    莫子
    2021-11-08

    已解决,非异步问题,是数据结构出了问题,是我自己没交代清楚,数组app.globalData.ranking中的元素应为对象,非数组

    2021-11-08
    有用
    回复
  • 武曲心
    武曲心
    2021-11-08

    就是说toRanking执行快,执行时globalData的ranking还没被赋值,取值自然为空。监听回调都能解决问题,要是ranking赋值是在app.js里面完成的,建议你用微信开发工具新建一个小程序项目,项目里面的demo有处理方法。

    2021-11-08
    有用
    回复 1
    • 莫子
      莫子
      2021-11-08
      从我的案例来看,是globalData中的ranking已经有值,只是无法赋给子页面data中的ranking?
      2021-11-08
      回复
登录 后发表内容