const db = wx.cloud.database() Page({ /** * 页面的初始数据 */ data: { tempImgList:[], cloudDetailImage:[] }, onLoad: function (options) { }, onShow: function () { this.getTypeGoodsList() }, getTypeGoodsList(){ db.collection('good_Type').get() .then(res=>{ console.log("查找分类目录成功",res) let List = res.data let typeList=[] for(let i =1;i<List.length;i++){ typeList.push(List[i]) } this.setData({ typeList:typeList }) }) .catch(res=>{ console.log("查找分类目录失败",res) }) }, getType(event){ console.log(event) this.setData({ currentIndex:event.currentTarget.dataset.index, type_nameCN:this.data.typeList[event.currentTarget.dataset.index].type_nameCN }) }, chooseDetailImage(){ var that = this; wx.chooseMedia({ count: 9, mediaType: ['image','video'], sourceType: ['album', 'camera'], maxDuration: 30, camera: 'back', success(res) { console.log(res.tempFiles.tempFilePath) console.log(res.tempFiles.size) //上传图片 that.uploadImageDetail() } }) }, uploadImageDetail(){ var that = this; for(let l in this.data.tempImgList){ wx.cloud.uploadFile({ cloudPath: 'goodImage/${Math.random()}_${Date.now()}.${this.data.tempImgList[l].match(/\.(\w+)$/)[l]}', filePath: this.data.tempImgList[l], success(res){ console.log(res.fileID) that.data.cloudDetailImage.push(res.fileID) that.setData({ cloudDetailImage:that.data.cloudDetailImage }) } }) } } chooseDetailImage()没反应 underfined
时间: 2023-06-26 14:05:26 浏览: 100
你的代码中 `chooseDetailImage()` 函数定义了两次,导致后面的函数被覆盖掉了,可能是因为复制粘贴时出现错误。你可以尝试删除其中一个 `chooseDetailImage()` 函数,或者将它们合并成一个函数。另外,你需要检查一下 `this.data.tempImgList` 中的图片路径是否正确,并且确认你的小程序已经开启了相册或摄像头权限。如果仍然有问题,可以贴出完整的代码和报错信息,方便定位问题。
相关问题
const db=wx.cloud.database();写到哪里)
`const db = wx.cloud.database();` 这行代码是在微信小程序(Wechat Mini Program)中使用的,用于初始化云数据库的实例。你应该将它放置在你的WXML文件、JS文件或者是全局的config.js中,通常是在需要操作数据库的地方,比如数据获取、增删改查的生命周期函数 `onLoad`、`getData` 等。
如果是在JS文件中,可以放在页面的逻辑处理部分,例如:
```javascript
Page({
data() {
return {
// 其他数据...
db: wx.cloud.database()
};
},
onLoad() {
this.db.collection('your_collection').get({}).then(res => {
// 数据查询操作
});
}
})
```
如果是配置数据库的入口,可以在`app.js`的globalData里:
```javascript
App({
globalData: {
db: wx.cloud.database()
},
onLaunch: function () {
// ...
},
//...
})
```
// pages/add/add.js const db = wx.cloud.database() Page({ /** * 页面的初始数据 */ data: { tempImgList:[], cloudDetailImage:[] }, onLoad: function (options) { }, onShow: function () { this.getTypeGoodsList() }, getTypeGoodsList(){ db.collection('good_Type').get() .then(res=>{ console.log("查找分类目录成功",res) let List = res.data let typeList=[] for(let i =1;i<List.length;i++){ typeList.push(List[i]) } this.setData({ typeList:typeList }) }) .catch(res=>{ console.log("查找分类目录失败",res) }) }, getType(event){ console.log(event) this.setData({ currentIndex:event.currentTarget.dataset.index, type_nameCN:this.data.typeList[event.currentTarget.dataset.index].type_nameCN }) }, chooseDetailImage(){ var that = this; wx.chooseMedia({ count: 9, mediaType: ['image','video'], sourceType: ['album', 'camera'], maxDuration: 30, camera: 'back', success(res) { console.log(res.tempFiles.tempFilePath) console.log(res.tempFiles.size) //上传图片 that.uploadImageDetail() } }) }, uploadImageDetail(){ var that = this; for(let l in this.data.tempImgList){ wx.cloud.uploadFile({ cloudPath: 'goodImage/${Math.random()}_${Date.now()}.${this.data.tempImgList[l].match(/\.(\w+)$/)[l]}', filePath: this.data.tempImgList[l], success(res){ console.log(res.fileID) that.data.cloudDetailImage.push(res.fileID) that.setData({ cloudDetailImage:that.data.cloudDetailImage }) } }) } } }) 上传图片没反应
可能是因为上传图片的函数`uploadImageDetail()`没有被调用。你可以在`chooseDetailImage()`中调用`uploadImageDetail()`函数,例如这样:
```
chooseDetailImage(){
var that = this;
wx.chooseMedia({
count: 9,
mediaType: ['image','video'],
sourceType: ['album', 'camera'],
maxDuration: 30,
camera: 'back',
success(res) {
console.log(res.tempFiles.tempFilePath)
console.log(res.tempFiles.size)
that.setData({
tempImgList:res.tempFilePaths
})
//上传图片
that.uploadImageDetail()
}
})
},
```
在`chooseDetailImage()`函数中,首先将选择的图片路径存储到`tempImgList`中,然后再调用`uploadImageDetail()`函数进行图片上传。
阅读全文