本期作者:郭苗苗
1
组件问题
list组件
list组件中出现数据渲染混乱,组件的显示与隐藏混乱的问题
先看是否在list-item中使用了for循环和if判断来控制组件的显示与隐藏;
将 if 修改为 show;
for循环里如果有导致dom结构不一样的地方,可以将整个list-item细分为小范围的list-item,dom结构改变的list-item,可以用show控制;
list组件中点击事件,第一次可以正常点击,第二次点击不起作用的情况
可能是list-item中又再次嵌套了list组件;
需要将嵌套的list组件改成div形式的;
报 xxx cannot be cast to xxx at …list 的错误, 是不规则使用list组件导致的,根据如下的注意事项修改就可以 。
解释:Native 会复用相同type属性的list-item,所以有type属性但是dom结构会变得list-item就会出现渲染问题,但是设置相同type属性的list-item是优化列表滚动性能的关键,所以只有划分成更细的list-item会是比较好的解决方法;
list组件使用注意事项总结
list-item内不能再嵌套list;
list-item的type属性为必填属性;
list-item内部最好不使用if指令或for指令,因为相同type属性的list-item的 DOM 结构必须完全相同,而使用if指令或for指令会造成 DOM 结构差异;
span组件
有数据但是没展示出来
应该是直接在div组件中写了span组件导致的;
可以将span组件换成text组件,或者在span组件外层再加一层text组件;
input组件
报错如下: java.lang.IndexOutOfBoundsException: index=2 count=1
如果两个input要在一个div下,那么他们不能有非input的兄弟元素,必须都是input,否则会报错;
如果一定要有别的兄弟元素,可以将每个input外