问题描述
uniapp开发中使用dom上的动态class,动态style等语法,导致最终编译出来的页面,有明显问题 或 dom错乱。
问题场景
问题出现在uniapp的低版本HBuilderX中,进行编译app,小程序等
代码片段
:class="{'tab-default': tabs.list.length}"
props: {
tabs: {
type: Object,
default: () => ({})
}
}
问题原因
由于该组件加载时,dom获取tabs.list
的值为undefined
,所以此时的tabs.list.length
会报错,导致该dom无法进行正常渲染。
问题解决
1、在dom上,可对tabs.list
做一次值判断,再进行.length
操作
:class="{'tab-default': tabs.list && tabs.list.length}"
2、将tabs.list.length
的值放到js中进行判断、计算
computed: {
tabsLength() {
let { list = [] } = this.tabs
return list.length
}
}
关键词
编译失败
、uniapp编译
、HBuilder编译
、样式错乱
、编译不显示
、动态class
、动态style