1.1.1 错误解决方法
在wx.chooseAddress按钮旁再设置一个按钮,跳转页面读取云数据库中的数据
1.1.2 解决方法问题
此方法读取返还的数据无法与wx.chooseAddress读取到的数据共存,应该是两次调用都刷新了页面,导致页面无法共存,此方法否决
1.2.1 正确解决方法
想了一会,突然想起来上传商品时的上传生产日期的组件picker,不会跳转到新页面读取数据,应该可以和wx.chooseAddress上传的数据共存,开始尝试
一番查找后选择使用picker的普通选择器,而上传页面的picker组件是日期选择器
1.2.1.1 从数据苦读取的数据无法赋值给data中的数组
由于数据库中除了自提点还有其他数据,我先选择在js的data中设置了一个数组ztd,通过db.collection(‘zitidian’).get读取云数据库数据,设置一个变量ztdd,将读取到的数据用push赋值,再用that.setdata中ztd:ztdd直接赋值,一直无法赋值,尝试无果,找不到原因,只找到了无法数组赋值,picker读取不到值,下拉一片空白,卡了一天(代码已经删了,就不贴了)
1.2.1.1 数据直接读取,中间不设置变量
读取出来后,再在前端显示就可以了
data: {
array: [],
index: 0
},
// 选择自提点
bindPickerChange: function (e) {
console.log('显示数据成功', e)
this.setData({
index: e.detail.value
})
},
onLoad: function (options) {
let that = this
db.collection('zitidian').get({
success: function (res) {
console.log('获取自提点成功', res)
that.setData({
array: res.data,
})
},
fail: function (res) {
console.log('获取自提点失败', res)
}
})
},
需要注意range-key属性和array[index],array[index]后需要加上变量名显示,(我看官方代码没有加,可能是我的数组里的变量较多)
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}" range-key="shop_address">
<view class="picker">
自提点选择:{{array[index].shop_address}}
</view>
</picker>