1个回答
test
2024-07-03
1、创建navbar组件 navbar.js文件代码如下:
const app = getApp()
Component({
properties: {
navbarData: { //navbarData 由父页面传递的数据,变量名字自命名
type: Object,
value: {},
observer: function (newVal, oldVal) {}
}
},
data: {
height: '',
//默认值 默认显示左上角
navbarData: {}
},
attached: function () {
// 定义导航栏的高度 方便对齐
this.setData({
height: app.globalData.height
})
},
})
navbar.json代码如下:
{
"component": true,
"usingComponents": {
"van-nav-bar": "@vant/weapp/nav-bar/index"
}
}
navbar.wxml代码如下:
<view class="nav-wrap">
<!-- // 导航栏 中间的标题 -->
<van-nav-bar
title-class="{{navbarData.isIndex?'nav-title':''}}"
z-index="6"
border="{{navbarData.border==false?navbarData.border:true}}"
custom-style="background-color:{{navbarData.backgroundColor?navbarData.backgroundColor:'#fff'}}"
fixed
title="{{navbarData.title}}"
bind:click-left="onClickLeft"
bind:click-right="onClickRight"
>
</van-nav-bar>
</view>
navbar.wxss代码如下:
.nav-title {
color: #fff;
}
2、在需要自定义导航栏的页面下设置如下(例如login登录页) (1)在app.js中主要代码如下:
onLaunch() {
wx.getSystemInfo({
success: (res) => {
this.globalData.height = res.statusBarHeight
}
})
},
(2)login.js主要代码如下:
data: {
navbarData: {
title: "账号绑定", //导航栏 中间的标题
},
height: app.globalData.height * 2 + 20
}
(3)login.json主要代码如下:
{
"navigationStyle": "custom",
"usingComponents": {
"nav-bar": "../../components/navbar/navbar"
}
}
(4)login.wxml主要代码如下:
<view class="container">
<view>
<nav-bar navbar-data="{{navbarData}}"></nav-bar>
<view style="margin-top: {{height}}px"></view>
</view>
</view>
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容