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 07:05:26 浏览: 106
你的代码中 `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 }) } }) } } })
这是一个使用小程序开发的页面,其中使用了云开发的数据库和存储功能。在页面加载时,会调用 `getTypeGoodsList` 函数从数据库中获取商品分类目录列表。当用户点击某个分类目录时,会调用 `getType` 函数来更新当前选择的分类,并将其名称保存在 `type_nameCN` 变量中。当用户选择要上传的图片时,会调用 `chooseDetailImage` 函数,使用小程序的 `chooseMedia` 接口选择图片,并调用 `uploadImageDetail` 函数将图片上传至云存储,并将文件的 ID 保存在 `cloudDetailImage` 数组中。
阅读全文