收藏
回答

小程序js页面,data中声明的变量,在onLoad函数中无法使用,显示未定义,是什么问题?

data: {


    data: null


  },

  onLoad:function(option) {

    var id = option.listid

    console.log("open")

    // console.log(data)

    console.log(id)

    this.setData({

      data: app.goodsdata[id]

    })

    console.log("end")

  },

以上是我的代码,下边是控制台结果

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

2 个回答

  • 微盟
    微盟
    2023-05-22

    这是因为在小程序的Page对象中,data对象中声明的变量只能通过this.data来访问,而不能直接通过变量名来访问。所以,在你的代码中,应该将console.log(data)改为console.log(this.data)。

    另外,为了在onLoad函数中访问和修改data对象中的变量,你可以使用this.setData()方法来更新数据

    为了避免冲突,你可以将data变量的名称更改为其他名称,例如goodsData

    2023-05-22
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2023-04-04

    data: undefined 警告说给data赋undefined是无效的

    2023-04-04
    有用
    回复 6
    • 把帅气的澜朋友带回家
      把帅气的澜朋友带回家
      2023-04-04
      我用控制台输出data是下面的结果,包括后边的end控制台都不给输出了
      2023-04-04
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-04-04回复把帅气的澜朋友带回家
      console.log(this.data.data) 你应该看看文档,别想当然的造语法
      2023-04-04
      回复
    • 黑哥公众排名优化
      黑哥公众排名优化
      2023-04-04
      在小程序的js页面中,data中声明的变量是可以在onLoad函数中使用的。如果在onLoad中使用data中的变量时出现未定义的情况,可能是以下几个原因:
      1. 变量名拼写错误或没有声明:请检查变量名是否正确,以及是否在data中声明了该变量。
      2. 变量作用域问题:请确保变量的作用域是在onLoad函数内部,如果变量的作用域在函数外部,onLoad函数将无法访问该变量。
      3. onLoad函数没有被正确调用:请确认onLoad函数是否被正确调用,并且在页面加载完成后才能访问data中的变量。
      如果以上原因都不是导致未定义问题的原因,还需要进一步检查代码逻辑,或者提供更加具体的错误提示来判断问题的原因。
      2023-04-04
      回复
    • Mr.Zhao
      Mr.Zhao
      2023-04-04回复黑哥公众排名优化
      回复错人了
      2023-04-04
      回复
    • 把帅气的澜朋友带回家
      把帅气的澜朋友带回家
      发表于移动端
      2023-04-04回复Mr.Zhao
      非常感谢,刚入坑
      2023-04-04
      回复
    查看更多(1)
登录 后发表内容