本来只是一个简单的多级联动picker-view,但是发现如果在它的bindchange中修改了picker-view-column里显示的内容的话,每个column的行高就会突然张开,排版变得诡异了起来。不知道有没有大佬看得出这是什么原因[捂脸]
代码片段链接如下:https://developers.weixin.qq.com/s/KbfFqpmQ7pk3
代码不多,顺便贴一个好了,
const app = getApp();
Page({
data: {
pickerColumns: [
[{"key1": "第一列"}, {"key2": "第二行"}],
[{"key1": "第二列"}, {"key2": "第二行"}, {"key3": "第三行"}],
[{"key1": "第三列"}],
[{"key1": "第四列"}],
[{"key1": "第五列"}]
],
pickerColumnsKeys: ["key1", "key2", "key3"],
},
onLoad: function () {
console.log('代码片段是一种迷你、可分享的小程序或小游戏项目,可用于分享小程序和小游戏的开发经验、展示组件和 API 的使用、复现开发问题和 Bug 等。可点击以下链接查看代码片段的详细文档:')
console.log('https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html');
},
testObject: function () {
this.setData({
pickerColumns: [
[{"key1": "第一列"}, {"key2": "第二行"}],
[{"key1": "第二列"}, {"key2": "第二行"}, {"key3": "第三行"}],
[{"key1": "第三列"}],
[{"key1": "第四列"}],
[{"key1": "第五列"}]
],
});
},
})
<view class="intro" bindtap="activePopup">欢迎使用代码片段,可在控制台查看代码片段的说明和文档</view>
<view style="width: 100vw; height: 50vh">
<picker-view style="width: 100%; height: 100%; text-align: center;" bindchange="testObject">
<picker-view-column wx:for="{{pickerColumns}}">
<view wx:for="{{item}}" wx:for-item="lowerItem" wx:for-index="lowerIndex" style="line-height: 50px; color: {{index == pickerColumns.length - 1 && lowerIndex == 0 ? 'red' : ''}}">{{lowerItem[pickerColumnsKeys[lowerIndex]]}}</view>
</picker-view-column>
</picker-view>
</view>
这里干嘛要重新在赋值一遍?
bindchange 是你对应的 子孙曾孙选项有变化再赋值的