最下面的功能可以把 message date和servedate写入数据库
但是author不行,会报错ReferenceError: queryResultname is not defined
有大大能告诉我一下怎么处理吗??
尝试写了 let queryResultname = "", 直接就写入空值了,但实际上是有数据的
是从云端查询的当前用户的名字
// 设置数据库
const db = wx.cloud.database()
const messagedate = JSON.stringify(new Date()+0).replace("\"","").replace("\"","").replace(" GMT+0800 (中国标准时间)0","")
let that = this
let usermessage = ""
let _openid = ""
Page({
data:{
user_info:[],
messageboard:[],
usermessage:"",
messagedate:"",
queryResultname:"",
queryResultmessage: [],
},
onLoad: function () {
// 从云端获取个人信息
wx.cloud.callFunction({
name: "getopenid",
success(res){
// 授权用户的openid
let userid = res.result.openid
}
})
// 查询当前用户名字
db.collection('user_info').where({
_openid: this.data.userid
})
.get({
success: res => {
this.setData({
queryResultname: res.data[0].name
})
console.log('[数据库] [查询记录] 成功: ', res.data[0].name)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
})
console.error('[数据库] [查询记录] 失败:', err)
}
})
// 获取留言
db.collection('messageboard').orderBy('servedate','desc').get({
success:res=>{
this.setData({
queryResultmessage: res.data
})
console.log('留言获取成功',res.data)
},fail:res=>{
console.log('留言获取失败',res)
}
})
},
gainmessage(e){
usermessage=e.detail.value
console.log("获取输入的值",usermessage)
},
addmessage:function(){
db.collection("messageboard").add({
data:{
message:usermessage,
date:messagedate,
servedate:db.serverDate(),
author:queryResultname,
}
})
},
})
解决了,最后
author:queryResultname
修改成 author:this.data.Resultname就可以了
看上去象是JS异步问题。