用 picker-view 做了一个省市区的选项,但是某些特殊省份没有后面两列,第二列会自动清空,第三列却不会清空,导致控制台报错。
做了判断也是不行
报错信息
TypeError: null is not an object (evaluating '_vm.data_list[_vm.selectValue[0]].children[
_vm.selectValue[1]
]')
测试机为安卓,苹果机没有测
软件版本:2.5.5.20200111-alpha
最佳回复
这个报错应该没毛病
看了一下你的用法:data_list[selectValue[0]].children[selectValue[1]].children
当data_list[selectValue[0]].children值已经为null的时候你仍然要继续访问[selectValue[1]].children,理应报错
比如改成:
<view class="picker-item" v-for="(item, index) in data_list[selectValue[0]].children&&data_list[selectValue[0]].children[selectValue[1]].children" :key="index">{{item[rangeKey]}}</view>
另外社区有一些城市选择插件,你也可以参考
追梦随想 (作者)
问题有两种,城市列表并非所有城市都是三列,比如广东东莞、中山只有两列,当然也可能是我这边没有收集齐全,其他城市有没有两列的没注意到,港澳台只有一列,这两种情况都会报错。
第一种:把省份设置为广东、城市为东莞,没有第三列,然后滚动省份,控制台就会报错,大概就是第三列没有的意思。
第二种:把省份设置为港澳台任意一个,控制台就会报错。
为了解决这个问题,我把第三列做了判断,如果没有就不显示,但是并不能完美的解决,因为少了第三列,只能返回两个值,而这个组件少一个值就会报错。。。
@DCloud_UNI_GSQ
追梦随想 (作者)
受教了,判断还能这么用,没有用插件的原因是目前插件会改变数据结构,而我的项目是从MUI转过来的,没办法只能自己动手了。你提供的解决办法能解决第二个问题,第一个问题依然存在,但是并不影响使用,有空可以看看,感谢
2020-01-18 12:07
DCloud_UNI_GSQ
2020-01-18 12:17
追梦随想 (作者)
回复 DCloud_UNI_GSQ: 给你100个赞,我还是经验欠缺,十分感谢,稍后我打包成插件,方便使用MUI的老项目,在不修改原有数据结构的情况下也能使用 picker 组件
2020-01-18 12:30