위챗 애플릿 사용자 정의tabBar의 구덩이 밟기 실천 기록
UI 구성 요소 라이브러리로 Vant Weapp를 사용합니다. 다음은 이 구성 요소 라이브러리를 예로 들겠습니다.
tabBar 정의
사용자 정의 tabBar 파일 만들기
/pages와 같은 디렉터리를 만듭니다./custom-tab-bar로 명명되었습니다. 디렉터리 등급과 디렉터리 명명 문제를 주의하십시오. 다른 이름으로 명명할 수 없습니다.
/custom-tab-bar 아래에 네 개의 파일을 만듭니다.
index.js
index.json
index.wxml
index.wxss
index.js
인덱스에서js에서 관련 데이터를 정의합니다.
function onChange(event): 탭 전환 시 터치, active 값 수정, 클릭된 tab 켜기 및 페이지 이동
Component({
data: {
// tab
active: null,
//
list: [
{
pagePath: '/pages/subscriptions/subscriptions',
text: ' ',
name: 'subscriptions',
icon: 'bullhorn-o'
},
{
pagePath: '/pages/profile/profile',
text: ' ',
name: 'profile',
icon: 'user-o'
}
]
},
methods: {
//
onChange: function (event) {
this.setData({ active: event.detail })
wx.switchTab({
url: this.data.list[event.detail].pagePath,
})
}
}
})
index.json인덱스에서json에서 component 매개 변수 값을true로 설정합니다. 이것은 사용자 정의 구성 요소입니다.
{
"component": true
}
Vant Weapp의tabBar 태그 표시줄를 사용하기 때문에 추가 구성 요소를 도입해야 합니다.
{
"component": true,
"usingComponents": {
"van-tabbar": "@vant/weapp/tabbar/index",
"van-tabbar-item": "@vant/weapp/tabbar-item/index",
"van-icon": "@vant/weapp/icon/index"
}
}
index.wxml인덱스에서xxml에서 구성 요소의 형태를 정의합니다. 저는 여기에서 Vant Weapp의tabBar 태그 표시줄를 사용합니다. 상세한 코드를 보십시오. 더 이상 설명하지 않겠습니다.
<van-tabbar active="{{ active }}" bind:change="onChange">
<van-tabbar-item
wx:for="{{list}}"
wx:key="index"
icon="{{item.icon}}"
data-path="{{item.pagePath}}">
{{item.text}}
</van-tabbar-item>
</van-tabbar>
앱을 구성합니다.json앱에서json에서 다음 매개변수를 구성합니다.
{
"usingComponents":{
},
"tabBar":{
"custom":true,
"color":"#000000",
"selectedColor":"#000000",
"backgroundColor":"#000000",
"list":[
{
"pagePath":"pages/subscriptions/subscriptions",
"text":" ",
"iconPath":"",
"selectedIconPath":""
},
{
"pagePath":"pages/profile/profile",
"text":" ",
"iconPath":"",
"selectedIconPath":""
}
]
}
}
tabBar 선택 상태 구현위챗 공식 문서 설명에 따르면 각 tab 페이지 tabBar의 실례는 다르다.
각각tab 페이지 아래의 사용자 정의tabBar 구성 요소의 실례는 다르다. 사용자 정의 구성 요소 아래의 getTabBar 인터페이스를 통해 현재 페이지의 사용자 정의tabBar 구성 요소의 실례를 얻을 수 있다.
tab 페이지를 전환할 때마다tabBar의 선택 상태를 업데이트해야 한다는 것은 명백하다.선택 상태 구현에 대한 공식 설명은 다음과 같습니다.
주의:tab 선택 상태를 실현하려면 현재 페이지에서 getTabBar 인터페이스를 통해 구성 요소의 실례를 가져오고setData를 호출하여 선택 상태를 업데이트해야 합니다.
우리는 tabBar에 사용되는 페이지에서 이렇게 할 수 있다.
Page({
onShow: function () {
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().setData({
// tabBar
active: 1
})
}
}
})
이로써 사용자 정의tabBar의 구현이 모두 완료되었습니다.구덩이를 밟다
getTabBar() 메서드 부족
tabBar 선택 상태를 실행할 때 getTabBar () 방법이 부족한 문제가 발생했습니다.작은 프로그램 개발 도구에서 getTabBar () 방법의 정의로 이동합니다.
/**
* custom-tab-bar
*
* :[`2.6.2`](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html)
**/
getTabBar(): TrivialInstance
이 방법의 최저 기초 버전 라이브러리는 2.6.2입니다. 프로젝트를 수정합니다.config.json 파일의 libVersion 필드를 지정한 버전 라이브러리로 업그레이드하면 됩니다.버전 라이브러리 업그레이드 후 tabBar 구성 요소 오류
오류 보고는 다음과 같습니다.
Component is not found in path "custom-tab-bar/index"
이 원인은 tabBar 구성 요소 디렉터리 배치 오류로 인해 발생한 것으로 다음과 같은 몇 가지를 주의해야 합니다.
getTabBar () 는 항상 null로 돌아갑니다.
여전히 디렉터리 배치와 파일 이름 문제는 처리 방법이 같다.
그리고 앱에서 필요 없어요.json의usingComponents는tabBar 구성 요소를 도입합니다. 디렉터리와 이름이 정확하면 프로그램이 자동으로 도입됩니다.
참조 문서
위챗 애플릿 사용자 정의tabBar 구덩이 밟기 실천 기록에 관한 이 글을 소개합니다. 더 많은 관련 위챗 애플릿 사용자 정의tabBar 구덩이 밟기 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
유니앱, 위챗 애플릿에서 MQTT 사용 문제(1)MQTT.js는 JavaScript로 작성된 MQTT 프로토콜의 클라이언트 라이브러리로 Node에 사용할 수 있습니다.js와 브라우저.노드에서.js단은 전역 설치를 통해 명령행 연결을 사용할 수 있으며 MQTT...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.