一个页面传入ID,用这个ID从远程取出fang_share表的share_ids字段,unicloud-db组件查询 articles 表,通过where条件 _id in share_ids
我在onLoad时获取ID,使用了await 查询出share_ids,设置where条件,再手工加载数据,
但我无论是从onReady中加载,还是写在 await后面,加载时的where条件还是初始的。
尝试 watch和computed也不正常。
async onLoad(event) {
if (event.id) {
this.id = event.id;
const res = await db.collection('fang_share').doc(this.id).get()
const data = res.result.data[0]
const share_ids = data.share_ids.map(item=>"'"+item+"'")
this.where = "_id in ["+share_ids+"]"
this.$refs.udb.loadData()
}else {
uni.showToast({
icon: 'none',
title: '出错了,ID为空'
})
}
}
或者
async onLoad(event) {
if (event.id) {
this.id = event.id;
const res = await db.collection('fang_share').doc(this.id).get()
const data = res.result.data[0]
const share_ids = data.share_ids.map(item=>"'"+item+"'")
this.where = "_id in ["+share_ids+"]"
}else {
uni.showToast({
icon: 'none',
title: '出错了,ID为空'
})
}
},
onReady(event) {
if (this.id) {
this.$refs.udb.loadData()
}
},
2 个回复
DCloud_uniCloud_VK
试试这样,延迟10毫秒
s***@qq.com (作者)
嗯,延迟是有用的,我之前在用计算属性是偶尔会出现正常数据,没想到用延迟。
因为数据量不大,我后来放弃用unicloud-db组件,直接取出全部数据赋值给了初始变量使用。
多谢!