小程序中wx.request中提示setData未定义,已解决

首先要确定没有语法拼写错误!!!
示例,如果用普通的function函数写会报错

// An highlighted block
async getGoodsDetail(goods_id) {
        const goodsObj = await wx.request({
            url: 'https://...',
            data: { goods_id },
            success: function(goodsObj){
                console.log(goodsObj.data.message)
                this.setData({
                    goodsObj: goodsObj.data.message
                })
            },
        })
    },;

这里会显示
MiniProgramError
Cannot read property ‘setData’ of undefined
TypeError: Cannot read property ‘setData’ of undefined
如果改写成箭头函数,就可以正常运行了
其原因是setData前面的this指向问题,function函数this不能穿透,箭头函数this可以穿透。

// An highlighted block
async getGoodsDetail(goods_id) {
        const goodsObj = await wx.request({
            url: 'https://...',
            data: { goods_id },
            success: (goodsObj) => {
                console.log(goodsObj.data.message)
                this.setData({
                    goodsObj: goodsObj.data.message
                })
            },
        })
    },;
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页