⼩程序picker的坑
js⽂件:
Companyarr: [{
id: '公司id1',
companyname: "公司1的名字"
}, {
杭州中考时间2022年具体时间id: '公司id2',
companyname: "公司2的名字"
}],
Companyindex: 0,
wxml⽂件:
<form bindsubmit='bindformSubmit'>
<text class="input-item-label">所属公司</text>
教育名言名句<picker name='UserCompany' class="input-item-content" bindchange="bindPickerChange" data-pickername="UserCompany" value="{{Companyindex}}" range-key='{{"companyname"}}' range="{{Companyarr}}" mode="selector">{{Companyarr[Co </picker>
一寸照片尺寸大小<button class="btn-block btn-orange" formType="submit">申请认证</button>
</form>
1.当range是ObjectArray时,range-key的作⽤是通过 range-key 来指定 Object 中 key 的值作为选择器显⽰内容。此时rang-key注意:⼤括号⾥⾯⼀定要加引号,也可以⽤range-
key='companyname' 这种形式。
PS:rang-key就是指定在页⾯上要显⽰对象数组中那个属性的值,和后⾯的{{Companyarr[Companyindex]panyname}}对应
2.关于value值得问题
汽车仪表盘的各种指示灯代表什么官⽅⽂档:
解释value是数组的索引,按照上⾯的写法(正确的写法就是这种),当我们提交表单,通过e.detail得到的表单的值,UserCompany对应的值就是你所选项的数组索引值,在⼤多传播学就业
数情况下,这并不是我们想要的,我们⼀般要得到的是对象数组中某个属性的值,当然通过索引,也可以在获得到我们想要的值,但是能不能在提交表单的时候,直接获得我们
好看电视剧排行榜想要的值呢,答案是可以的(但是会有⼀些问题),上述例⼦中⽐如我们要得到的是id,那么我们直接给value绑定{{Companyarr[Companyindex].id}},这样通过e.detail我们获取
UserCompany值就是我们想要的id值。如果我们只是⼀次性操作,之后也不会对信息进⾏更改这样是没⽤任何问题的,但是我想⼀般情况下应该不会是这样,当我们选择之后要
重新选择,或者表单提交之后,要修改信息进⾏重新选择,那么你会发现bug了,就是当点击出现选项后,你会发现选项中默认选中的不是我们当前选择的这个,⽐如我们原来
选择的是“公司2的名字”,跳出的选项默认选择还是“公司1的名字”,这就是没有指定选项索引的原因。如果按照正确的写法,页⾯加载时我们会给picker的value到正确的索引
值,进⾏赋值操作,这样当点击选择框弹出的框就会某⼈选中我们当前选择的值。
直接保存我们指定的某个属性的值,通过value指定的话,总体来说可⾏,但是就是会出现上述的问题。但是为什么不给⼀个属性⽤来专门指定索引值,⽽⽤value保存
我们需要的东西呢。想不通,还是我没发现怎么弄呢
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论