收藏
回答

如何解决云函数调用过程中“变量未定义”的问题?

我定义了一个云函数:

wx.cloud.callFunction({

      name: 'productDetail',

      data: {

        id: options.id,   

      },

    }).then(result => {

      wx.hideLoading()

      const data = result.result

      console.log(data)

      if (data) {

        this.setData({

          product: data

        })

        console.log(product)

      }

在执行到 console.log(product) 时,出错提示:product is not defined

我在data作了定义:

  data: {

    product: {

    }

  },

但错误依然存在,请问各位大大怎么解决,谢谢。

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

3 个回答

  • XCXer
    XCXer
    2020-05-17

    在 Page 函数内 使用 Page 的函数或 data 数据时应有 this 指示。在 Page 以外的话,应先获取当前 Page 对象。下面例子中 func2 函数在 Page 以外,而 func1 则是 Page() 内的一个函数。

    Page({
           data: {
              product: "",
           },
           func1: function(){
               console.log(this.data.product)
               this.setData({product: res.data})
               func2() 
           },
    })
    
    function func2(){
      var that = getCurrentPages().pop()
      var str1 = that.data.product 
      str1 = str1 + "abc" 
      that.setData({product: str1}) 
    }
    
    2020-05-17
    有用
    回复
  • 罗小华
    罗小华
    2020-05-16

    云函数定义如下:

    const cloud = require('wx-server-sdk')

    cloud.init()

    const db = cloud.database()

    // 云函数入口函数

    exports.main = async(event,context) => {

      const id = event.id

      const productRes = await db.collection("product").doc('id').get()

      const product = productRes

      return product

    }

    2020-05-16
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2020-05-16
     console.log(this.data.product)
    
    2020-05-16
    有用
    回复 5
    • 罗小华
      罗小华
      2020-05-16
      2020-05-16
      回复
    • 罗小华
      罗小华
      2020-05-16回复罗小华
      只出来一个美元符号, product里采集到了数据,但渲染不出来
      2020-05-16
      回复
    • 罗小华
      罗小华
      2020-05-16回复罗小华
      {data: {…}, errMsg: "document.get:ok"}

      data: {_id: "zXjshWZEANSaCreRowC51pFcWg14XbWUJW2ydTjhRJ2SB9ST",
      image: "cloud://luoxiaohua-otjqa.6c75-luoxiaohua-otjqa-1302097061/products/product3.jpg",

      name: "Red Iron Stapler",
      price: 28, source: "CHINA"}
      errMsg: "document.get:ok"
      __proto__: Object
      2020-05-16
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-05-16回复罗小华
      乱七八糟的,发的啥啊
      2020-05-16
      回复
    • 罗小华
      罗小华
      2020-05-16回复Mr.Zhao
      收到,正在学习小程序云函数,谢谢
      2020-05-16
      回复
登录 后发表内容
问题标签