这样的需求想必所有应用都有:
进入界面后,当列表无数据,显示暂无数据占位图,有数据则隐藏占位图显示列表数据。
遇到这样的需求,想当然的使用wx;if/else来做,所以我刚开始是这么做的:
![](https://i-blog.csdnimg.cn/blog_migrate/3a910dc69515540b871ea2558e14f73c.png)
错误示范
那么现实给了我一盆冷水:
![](https://i-blog.csdnimg.cn/blog_migrate/4944385d47ea336a3f2ec6c02edf71e6.png)
报错信息
后面我尝试单独保留if去掉else,那么结果是可运行的:
![](https://i-blog.csdnimg.cn/blog_migrate/ade540cddc9803a0b6a9614fd9f87912.png)
无报错
我发现只要加上else 就会报错,所以后来尝试给if多嵌套一层:
![](https://i-blog.csdnimg.cn/blog_migrate/1faccb7ee1a537e2dedb31283441a257.png)
嵌套一层
结果这样是可以运行的!所以我隐约推断:循环列表的view其实相当于多个view,没有else时if是相当于每一个子view的判断,而加上了else则相当于多个if对应一个else(多对一关系),所以遇到这种情况时,要在循环列表外层多嵌套一个view来用作判断才能保证1对1的正确语法。
本人为刚接触小程序的小白,以上结论为个人推断,如有错误欢迎指正!