this.setData()在给data里面的元素赋值时不起作用,请问怎么改?

您所在的位置:网站首页 为什么微信小程序不能使用 this.setData()在给data里面的元素赋值时不起作用,请问怎么改?

this.setData()在给data里面的元素赋值时不起作用,请问怎么改?

2024-06-29 13:14| 来源: 网络整理| 查看: 265

程序在加载时候,从云数据库读取用户信息,然后使用this.setData()给view里面的东西赋值。但是赋值之后不起作用,而且this.setData()后面的console也不执行了。

// miniprogram/pages/index/index.html.jslet app = getApp();const db = wx.cloud.database();Page({   /**   * 页面的初始数据   */  data: {    name:'',    grade: ''  },   /**   * 生命周期函数--监听页面加载   */  onLoad: function (options) {    this.onGetOpenid();  },   onGetOpenid() {    // 调用云函数    wx.cloud.callFunction({      name: 'login',      data: {},      success: res => {        this.onInit(res.result.openid);      },      fail: err => {        console.error('[云函数] [login] 调用失败', err)      }    });  },  onInit(openid) {    // console.log(openid);    // console.log(typeof (openid));    //初始化用户信息    db.collection('user')      .where({        _openId: openid //填入用户当前openId      }).get({        success: function (res) {          // console.log(res.data);          if (res.data.length > 0) {            console.log("用户已存在");            console.log("res: ", res);            //获取用户的stuId            app.globalData.stuId = res.data[0].stuId;            app.globalData.score = res.data[0].score;            app.globalData.name = res.data[0].name;            this.setData({              name:app.globalData.name,              grade:app.globalData.score            });            console.log("app.globalData.stuId", app.globalData.stuId);            console.log("app.globalData.score", app.globalData.score);            console.log("app.globalData.name", app.globalData.name);          } else {            console.log('用户不存在,请先注册')            wx.redirectTo({              url: '../register/register',            });          }        },        err: function (e) {          console.error('初始话用户信息失败', err)        }      })  } })

代码定位:54行-58行

请问代码有什么问题吗,应该怎么解决。

非常感谢各位!!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3