Open Saxon-Liu opened 6 months ago
2.0.37
www.uviewui.com
customStyle
top
right
badgeStyle
uview-ui/components/u-tabbar-item/u-tabbar-item.vue
26
offset
:style="[$u.addStyle(customStyle), badgeStyle]"
u-tabbar-item.vue :offset="[0, dot ? '34rpx' : badge > 9 ? '14rpx' : '20rpx']"
uview-ui/libs/config/props/tabbarItem.js
style
uview-ui/components/u-badge/u-badge.vue
:style="[badgeStyle, $u.addStyle(customStyle)]"
badgeStyle: ''
版本
2.0.37
转载链接
www.uviewui.com
重现步骤
期望的结果是什么?
实际的结果是什么?
customStyle
中的top
和right
属性被u-badge组件内badgeStyle
的top
和right
所覆盖,从而导致自定义top
和right
失效。错误分析
badgeStyle
的top
和right
值来源于uview-ui/components/u-tabbar-item/u-tabbar-item.vue
的第26
行的offset
数据。 u-badge.vue line5:style="[$u.addStyle(customStyle), badgeStyle]"
u-tabbar-item.vue line 26u-tabbar-item.vue :offset="[0, dot ? '34rpx' : badge > 9 ? '14rpx' : '20rpx']"
customStyle
的默认参数包含默认的top
和right
,位于uview-ui/libs/config/props/tabbarItem.js
第18行。style
顺序原因导致customStyle
中包含的top
和right
被badgeStyle
中的top
和right
覆盖建议的解决方案
uview-ui/components/u-badge/u-badge.vue
的第5行,将:style绑定表达式顺序调整为::style="[badgeStyle, $u.addStyle(customStyle)]"
这样确保自定义样式可覆盖默认样式uview-ui/libs/config/props/tabbarItem.js
第18行,将默认的badgeStyle从 'top: 6px;right:2px;' 修改为空字符串:badgeStyle: ''