老师,我遇到一个挺奇怪的问题,求助,想了很久了

来源:2-1 流程与开发前准备

MasonM

2020-04-29

var util = require('../../utils/util')
Page({
  data: {
    book: {}
  },
  onLoad: async function (options) {
    var { data: res } = await util.http(`/book/${options.id}/detail`, "GET")
    res.summary = res.summary.replace(/\\n/g, "\n");
    console.log(this.data) //  ---第9行
    this.setData({
      book: res,
      id: options.id
    })
  },
  onReady: function () {
    this.getCommentsList()
  },
  getCommentsList: function () {
    console.log(this.data)  //   ---第19行
    console.log(this.data.id) // ----第20行
  }

})

在getCommentsLis函数中,第二行打印一直都是undefined,但是第一行却能获取到数据
图片描述
真的想不懂为啥,请老师可以解答一下,谢谢

写回答

1回答

7七月

2020-04-29

你是不是没有 理清楚data的数据结构 ,所以导致data.id是 空值?这个data是什么?

0
3
MasonM
回复
7七月
好的~这个问题我后来解决的,的确是因为异步的问题,我后来把getCommentsLis函数的调用放到了this.setData函数的第二个参数函数里就没问题了,这个方法是我在小程序社区里询问到的,具体我去查阅文档的时候,没怎么看到this.setData还能传递第二个参数的呢?
2020-04-29
共3条回复

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4782 学习 · 2125 问题

查看课程