小程序踩坑 前端从wx.chooseAddress返还数据,也需要从云数据库读取数据怎么办

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>

1.2.1.2数据读取成功

前端显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值