本期作者:郭苗苗
组件问题
list组件
先看是否在list-item中使用了for循环和if判断来控制组件的显示与隐藏; 将 if 修改为 show; for循环里如果有导致dom结构不一样的地方,可以将整个list-item细分为小范围的list-item,dom结构改变的list-item,可以用show控制;
报 xxx cannot be cast to xxx at …list 的错误, 是不规则使用list组件导致的,根据如下的注意事项修改就可以 。
解释:Native 会复用相同type属性的list-item,所以有type属性但是dom结构会变得list-item就会出现渲染问题,但是设置相同type属性的list-item是优化列表滚动性能的关键,所以只有划分成更细的list-item会是比较好的解决方法;
list组件使用注意事项总结
span组件
input组件
如果两个input要在一个div下,那么他们不能有非input的兄弟元素,必须都是input,否则会报错; 如果一定要有别的兄弟元素,可以将每个input外层都加一个div,这样就不会报错了;
其他组件
不能给block加class,只支持for, if, elif, else属性,不支持show条件渲染
1 JS问题
如果电话是固定的, 用a调起电话比较方便,如果电话是变动的,需要用接口返回,则用router.push比较方便,用a的话, 去掉接口之后,数据返回,调不起拨打电话界面
router.push({ uri: 'tel:10086' })
生成桌面图标的时候报200,install:fail
可能是没有正确获取到要设为图标的图片,检查图片地址是否正确
1 兼容问题
华为的兼容问题 华为对结构的解析与别的品牌有所不同;
同一触发点 e.target 的解析 小米手机:
兼容写法:
对 align-self:的处理不同;
兼容性写法:去掉babelstyle的align-self: center;这句话对小米的机型没影响正常显示,但是华为honor会把整个标签都放在图片的中间。
vivo的兼容问题 在我写的项目中,使用组件slider,在小米手机上正常,在vivo手机上报错,导致整个页面崩溃,所以都不使用slider组件了
1 其他内容
在本地项目中添加了图片,没展示出来
添加本地图片后需要重新npm run watch 或者 npm run build 之后才可以显示出来;
修改manifest文件后,报 Unexpected token } in JSON at position 1815,如图:
同级属性的最后一个属性的属性值多加了这个符号(,),去掉即可 ;
解决方式: hap update --force 之后,删掉node_modules,重新npm install
1 总结
以上就是我在开发中遇到的问题及解决方法,随着版本的迭代,部分可能有所更新,欢迎大家一起探讨。 |