为了账号安全,请及时绑定邮箱和手机立即绑定

只要上传图片就显示在评论中,后台也不报错,并且对应的图片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 () {


}

})


https://img1.sycdn.imooc.com//5d28047b0001d5e313370577.jpg



正在回答

2 回答

?很棒!自己解决了问题。

0 回复 有任何疑惑可以回复我~

问题已经解决,是因为我resolve写的不对,上面写的是resolve,下面执行方法时,写的是reslove

1 回复 有任何疑惑可以回复我~
#1

qq_精慕门9215320 提问者

yes
2019-07-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

只要上传图片就显示在评论中,后台也不报错,并且对应的图片fileId在控制台已经显示

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信