微信开发工具,创建微信小程序项目时,提供了一个skyline的简单模板,其中包含了navigation-bar的自定义组件,经过测试,components/navigation-bar/navagation-bar.js代码中有个bug需要修复:
attached() {
const rect = wx.getMenuButtonBoundingClientRect()
wx.getSystemInfo({
success: (res) => {
const isAndroid = res.platform === 'android'
const isDevtools = res.platform === 'devtools'
this.setData({
ios: !isAndroid,
innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px`, // bug所在,末尾应加;号
leftWidth: `width: ${res.windowWidth - rect.left }px`,
safeAreaTop: isDevtools || isAndroid ? `height: calc(var(--height) + ${res.safeArea.top}px); padding-top: ${res.safeArea.top}px` : ``
})
}
})
},
// innerPaddingRight 的值应以分号结束,华为手机小程序上会造成样式不生效,导致center插槽的错位。
// 正确的应为:
innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px`
// 更正,正确的应为: innerPaddingRight: `padding-right: ${res.windowWidth - rect.left}px;`