这几天一直在看关于微信小程序的东西,在学习小程序的过程中也遇到了一些问题,下面就唠唠其中的一个问题。
从官方文档可以看出,所有组件都拥有hidden属性,该属性控制组件是否显示,默认是显示的。
在练习过程中,我发现视图组件(view)设置hidden属性无效
例如如下布局:
1 <view hidden="true" style="display:flex;flex-direction: row;"> 2 <text>text1</text> 3 <text>text2</text> 4 </view>
你会发现hidden没有生效。经过我实验发现hidden元素对块状布局才生效,所以这段代码里导致hidden没有生效的罪魁祸首是display:flex。把这个去掉就可以了。
如果一定要用flex布局怎么办?
其实我这里想用hidden无非就是想隐藏这个布局,display:none也能做到隐藏。这里可以用一个取巧的方法,动态设置display属性(这个方式也是百度到哈哈哈),示例如下:
1 <view hidden="true" style="display:{{hideview ? none : flex}};flex-direction: row;"> 2 <text>text1</text> 3 <text>text2</text> 4 </view>
这里的hideview是在对应的js里是一个变量,由js来动态控制。