收藏
回答

appdata中有数据,但是无法渲染到页面?

获取showLoginDialog可以获取的到,但是换成userifno的时候无法获取了

const util = require('../../../utils/util.js');

const api = require('../../../config/api.js');

const user = require('../../../services/user.js');

const app = getApp();


Page({

  data: {

    userInfo: {

     },

    showLoginDialog: false

  },

  onLoad: function(options) {

    // 页面初始化 options为页面跳转所带来的参数

    

  },

  onReady: function() {

    

  },

  onShow: function() {

    console.log(this.data.userInfo)

    this.setData({

      userInfo: app.globalData.userInfo,

    }); 

    console.log(this.data.userInfo.nickName)

  },

  onHide: function() {

    // 页面隐藏


  },

  onUnload: function() {

    // 页面关闭

  },


  onUserInfoClick: function() {

    if (wx.getStorageSync('token')) {


    } else {

      this.showLoginDialog();

    }

  },


  showLoginDialog() {

    this.setData({

      showLoginDialog: true

    })

  },


  onCloseLoginDialog () {

    this.setData({

      showLoginDialog: false

    })

  },


  onDialogBody () {

    // 阻止冒泡

  },


  onWechatLogin(e) {

    if (e.detail.errMsg !== 'getUserInfo:ok'{

      if (e.detail.errMsg === 'getUserInfo:fail auth deny'{

        return false

      }

      wx.showToast({

        title: '微信登录失败',

      })

      return false

    }


    

    util.login().then((res) => {

      return util.request(api.AuthLoginByWeixin, {

        code: res,

        userInfo: e.detail

      }, 'POST');

    }).then((res) => {

      console.log(res)

      if (res.errno !== 0{

        wx.showToast({

          title: '微信登录失败',

        })

        return false;

      }

      // 设置用户信息

      this.setData({

        userInfo: res.data.userInfo,

        showLoginDialog: false

      });

      app.globalData.userInfo = res.data.userInfo;

      this.setData({

        userInfo: app.globalData.userInfo,

      }); 

      console.log(app.globalData.userInfo)

      app.globalData.token = res.data.token;

      wx.setStorageSync('userInfo', JSON.stringify(res.data.userInfo));

      wx.setStorageSync('token', res.data.token);

    }).catch((err) => {

      console.log(err)

    })

  },


  onOrderInfoClick: function(event) {

    wx.navigateTo({

      url: '/pages/ucenter/order/order',

    })

  },


  onSectionItemClick: function(event) {


  },


  // TODO 移到个人信息页面

  exitLogin: function() {

    wx.showModal({

      title: '',

      confirmColor: '#b4282d',

      content: '退出登录?',

      success: function(res) {

        if (res.confirm{

          wx.removeStorageSync('token');

          wx.removeStorageSync('userInfo');

          wx.switchTab({

            url: '/pages/index/index'

          });

        }

      }

    })


  }

})

这是js代码。控制台打印appdata中的userifno可以显示出来,就是在wxml获取的的时候获取不出来,这是为什么,有大神能帮忙解决一下吗

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

5 个回答

  • Mr.Zhao
    Mr.Zhao
    2025-01-03

    你都不区分大小写啊 这么马虎

    2025-01-03
    有用 1
    回复 1
    • 十九
      十九
      2025-01-03
      太感谢了哥,困扰我一天了,给你磕一个,救命恩人,感谢感谢,谢谢嘟
      2025-01-03
      回复
  • H1HAO 🇨🇳
    H1HAO 🇨🇳
    2025-01-03

    userInfo是一个对象啊,需要渲染肯定得指定下面的某一个值啊,showLoginDialog是个独立的布尔类型所以能渲染啊,

    2025-01-03
    有用
    回复 1
    • 十九
      十九
      2025-01-03
      上面指定了嘟,不过还是获取不到
      2025-01-03
      回复
  • 小黎
    小黎
    发表于小程序端
    2025-01-03

    userInfo 是个对象,取属性要通过 userInfo.属性名的方式

    2025-01-03
    有用
    回复 2
    • 十九
      十九
      2025-01-03
      上面用了,还是获取不到
      2025-01-03
      回复
    • 小黎
      小黎
      发表于移动端
      2025-01-03回复十九
      nickName
      2025-01-03
      回复
  • 一笑皆春
    一笑皆春
    2025-01-03
    你要展示啥?应该是{{userInfo.nickName}}
    
    2025-01-03
    有用
    回复 4
    • 十九
      十九
      2025-01-03
      不行的嘞,我上面用的就是{{userInfo.nickName}},正常的话那个点击登录是该显示nickName的值,现在获取不到
      2025-01-03
      回复
    • 一笑皆春
      一笑皆春
      2025-01-03回复十九
      那证明你代码写的还是有问题,userInfo.nickName是个null,可能其他地方修改值了
      2025-01-03
      回复
    • 十九
      十九
      2025-01-03回复一笑皆春
      搞好了哥,我撒比了,没有区分大小写,太感谢了哥
      2025-01-03
      回复
    • 一笑皆春
      一笑皆春
      2025-01-03回复十九
      好吧。。。
      2025-01-03
      回复
  • 智能回答 智能回答 该问答由AI生成
    2025-01-03
    有用
登录 后发表内容