uniapp 新增列表 picker组件联动

uniapp 新增列表功能和picker组件之间联动,有没有哪位大神教一教,

img

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7635533
  • 这篇博客你也可以参考下:uniapp小程序中picker点击不弹窗的原因
  • 除此之外, 这篇博客: 关于小程序的form表单提交,以及提交picker时的问题中的 最近在写小程序,发现了一些细节性的问题,在这里做一个记录,和大家一起学习。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1.先来说说picker吧,我是在写选择地址的时候遇到的问题。
    picker的第一个问题就是怎么在后台获取到提交的数据,我用的是this.data.xxxx[e.detail.value].xxxx

    这是我的picker选择器,就不细说了,中间view是用来回显的,.name是我的对象集合里的一个属性,你们可以随便点,想要什么点什么,city呢可以解释为数组下标,可以在js里初始化一下。cityList是我后台返回的数据用setData给它的。

    		wxml:
            <picker class="picker" name="id" bindchange="bindChange" value="{{city}}" range="{{cityList}}" range-key="name">
              <view> 市:{{cityList[city].name}} </view>
            </picker>
            
    		js:
    		  bindChange: function(e) {
    		    cityName = this.data.cityList[e.detail.value].name
    		    console.log(cityName)
    		  },
    
    		this.data.集合[e.detail.value].所需要的属性
    		这样,就可以获取到picker的值了
    

    2.下面在说说form表单提交时的问题吧。第一做小程序表单时,会发现与web有很大不同。因为小程序表单提交之后,input里的数据没有消失,页面没有任何变化,如果你不打个输出语句,你都看不出表单到底有没有提交成功。这让我这样第一次写小程序的小白慌的一批,以为是哪里写错了。其实,哪里都没错,小程序就是这样。
    我是这样来处理这个问题的,用:

              wx.navigateBack({
                delta: 1
              })
    

    可以返回上一层,1是返回上一层,2就是返回两层。这样成功之后,页面跳转回去。
    写到这里,觉得写的差不多了,但偏偏picker又出来搞事情。
    什么问题呢?就是虽然你提交了,页面也跳转了,input里的数据也消失了,但picker里选中的数据并没有消失,因为 xxx = this.data.xxxx[e.detail.value].xxx.
    用了等号,xxx也就把数据存到变量里了,所以它是有值的。

    我是这样来处理这个问题的:

      success: function(e) {
              provinceName = 0,
                cityName = 0,
                areaName = 0
              console.log("成功");
    

    没有错,就是表单提交成功以后,我把他们又重新初始化一下,这样再次添加的时候他们都是0

需要绑定不同的picker变量