收藏
回答

onLoad函数中的this.setData无法给变量赋值?

wx.cloud.init({

    env: 'cloud1-4gtcgk5heb93310d', //填上你的云开发环境id

    traceUser: true,})


     data: {

        total:'',

        abnormalList:[]

    },

onLoad(options) {

        const db = wx.cloud.database()

        // console.log(1)

        db.collection('abnormal').get({

            success:function (res) {

                console.log(res.data);

                let that=this;

                that.setData({

                    abnormalList:[res.data],

                    total:res.data

                })

            }

        })

    },

数据是从数据库里读出来了,但是读出来以后没法给定义的两个变量赋值,在控制台中鼠标移到setData会显示setData是any

我明白setdata同步异步的道理,但是不太清楚该怎么去应对解决,在小工具中怎么给变量赋个值为什么就那么难,还有就是同样的setdata语句在别人的环境中可以成功赋值,在我这就不行,为什么

最后一次编辑于  2023-08-04
回答关注问题邀请回答
收藏

2 个回答

  • 养乐多💍
    养乐多💍
    2023-08-07

    既然要改变this指针,你这个得放到函数外层,你在里面申明这个that的指向还是当前函数,你换成箭头函数可以了,是应为箭头函数里面的this和外层的this指向值一样的

    2023-08-07
    有用 1
    回复 1
    • 孤竹君
      孤竹君
      2023-08-15
      谢谢大佬
      2023-08-15
      回复
  • 孤竹君
    孤竹君
    2023-08-04

    改成箭头函数可以了,但是为什么呢?JS基础比较薄弱

    2023-08-04
    有用
    回复
登录 后发表内容