只要上传图片就显示在评论中,后台也不报错,并且对应的图片fileId在控制台已经显示
// pages/comment/comment.js
wx.cloud.init();
var db = wx.cloud.database();
Page({
/**
* 页面的初始数据
*/
data: {
moviedatails:'',
content:'', //评价的内容
score:5, //当前评价分数
images:[], //上传的图片
movieId:-1,
fileIds:[], //图片id
},
//评价对应函数
onContentChange:function(event){
//event.detail为当前输入的值
this.setData({
content:event.detail
})
},
//星级打分对应函数
onScoreChange:function(event){
this.setData({
score: event.detail
})
},
//图片选择
uploadImg:function(){
//这里定义this是为了让下面chooseImage方法中的this仍然是pages对象中的,否则会报‘ Cannot read property 'setData' of null’错误
//另外一种方法,使用箭头函数,将function(res){}修改为res=>{}
var mythis = this;
//选择图片,从本地相册选择或拍摄
wx.chooseImage({
count:9,
sizeType:['original','compressed'],
sourseType:['album','camera'],
success: function(res) {
//tempFilePaths可以作为img标签的src属性显示图片
const tempFilePaths = res.tempFilePaths;
console.log(tempFilePaths)
mythis.setData({
images: mythis.data.images.concat(tempFilePaths)
})
}
})
},
submit:function(){
wx.showLoading({
title: '评论中',
})
var promiseArray = []; //异步操作数组
for(var i=0;i<this.data.images.length;i++){
promiseArray.push(new Promise((resolve,reject)=>{
var item = this.data.images[i];
let suffix = /\.\w+$/.exec(item)[0]; // 正则表达式,返回文件扩展名
wx.cloud.uploadFile({
cloudPath:new Date().getTime() + suffix,
filePath:item,
success: res => {
// 返回文件 ID
console.log(res.fileID)
this.setData({
fileIds: this.data.fileIds.concat(res.fileID)
});
reslove();
},
fail: console.error
})
})
)
}
Promise.all(promiseArray).then(
res=>{
db.collection("comment").add({
data:{
comment: this.data.content,
score:this.data.score,
movieid:this.data.movieId,
fileIds: this.data.fileIds
}
}).then(
res=>{
wx.hideLoading()
wx.showToast({
title: '评论成功',
})
}
).catch(err=>{
wx.hideLoading()
wx.showToast({
title: '评论失败',
})
}
)
}
).catch(
err=>{
console.error(err)
}
)
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
movieId: options.movieid
wx.cloud.callFunction({
name: "moviedetails",
data: {
movieid: options.movieid
}
}).then(res=>{
this.setData({
moviedatails:JSON.parse(res.result)
})
console.log(res)
}).catch(err=>{
console.log(err)
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})