收藏
回答

为什么项目上线后报错token undefined,但是在测试和真机调试时是没有问题?

  • 项目在真机调试和测试时都是没有问题得,一上线就报错,能麻烦帮忙看下吗?最新版开发者工具,基础库版本3.4.7
  • 目前个人认为可能时getApp()没有获取到,如果是这个原因请问有没有解决办法?
  • 报错情况以及部分代码如下
//app.js
App({
    globalData: {
        token: null,
}
})


//intelligent.js
const app = getApp();
Page({
    data: {  user_userInfo:"",},
   onShow() {
       const that = this
       console.log("app",app)
       if (app.globalData.token) {
          that.setData({
            user_userInfo: JSON.parse(wx.getStorageSync('user_userInfo'))
         })
}
}

-----------------------------------

再一次测试,发布上线的项目getApp()进行log输出

上线项目测试,无法输出app.js中自定义的方法和变量

微信开发者工具调试,可以输出自定义的方法和变量


最后一次编辑于  06-11
回答关注问题邀请回答
收藏

4 个回答

  • 努力奔跑的小周
    努力奔跑的小周
    06-12

    感谢各位大佬的帮忙,问题已经解决了,根本原因是因为我使用了社区中的we-color-picker取色器插件,他让我的onLaunch加载了两遍,后面那遍把前面已经加载好的方法和变量覆盖了。我把插件卸载了,就可以了

    06-12
    有用 1
    回复
  • 0
    0
    06-12

    给token赋值的地方截图看一下,是不是赋值的时候给了undefined


    06-12
    有用
    回复 3
  • 跨商通
    跨商通
    06-11

    1、缓存支持保存对象类型,不需要JSON.parse之类。

    2、你自己定义的token:null,当然是null了 。

    3、如果你在其他地方写代码给token赋值了,贴出代码。大概率是js异步问题。

    06-11
    有用
    回复 2
    • 努力奔跑的小周
      努力奔跑的小周
      06-11
      首先,报错是在页面渲染时报错的,报的是token为undefined,我后面没有对token进行任何操作。其次经过测试发现,并不是token为null的原因,是因为getApp()并没有获取到app.js中自定义的变量和方法,请问这应该怎么解决呢?我测试和真机调试都是可以获取的,就是项目上线没办法获取了。感谢
      06-11
      回复
    • 跨商通
      跨商通
      06-12回复努力奔跑的小周
      只能猜线上版和体验版不是同一个版本。线上版里你根本没写globalData的代码。
      06-12
      回复
  • hello world
    hello world
    06-11

    getApp() 是不会 获取不到的,代码太少看不出什么问题

    06-11
    有用
    回复 1
    • 努力奔跑的小周
      努力奔跑的小周
      06-11
      我刚刚将项目发布上线测试了一下,getApp()在开发者工具上面获取到的数据与发布上线获取的数据不一样,他没办法获取到我自己定义的数据
      06-11
      回复
登录 后发表内容