我定义了一个云函数:
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: {
}
},
但错误依然存在,请问各位大大怎么解决,谢谢。
在 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}) }
云函数定义如下:
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
}
<view class="product-card">
<image class="product-image" src="{{product.image}}" mode="widthFix"></image>
<view class="product-name">{{product.name}}</view>
<view class="product-source">{{product.source}}</view>
<view class="product-meta">
<view class="product-money">$</view>
<view class="product-price">{{product.price}}</view>
</view>
</view>
页面始终渲染不出来,开始用虚拟数据一直没问题的,请指教
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
this.setData({
product: result.result.data
})