問題:
ColorUI-UniApp 導航欄返回只能返回上一頁,如何設置自定義的頁面?
解析:
1.找到colorUi下的導航組件 cu-custom.vue
2.定義一個自定義導航的url屬性
props: {
// 定義一個導航url屬性,如果有這個屬性就使用這個跳轉url
url: {
type: String,
default: ''
}
},
3. 修改跳轉方法
BackPage() {
if (this.url) {
uni.redirectTo({url: this.url})
} else {
if (getCurrentPages().length < 2 && 'undefined' !== typeof __wxConfig) {
let url = '/' + __wxConfig.pages[0]
return uni.redirectTo({
url
})
}
uni.navigateBack({
delta: 1
});
}
}
4. 如何傳url值呢?
比如從a頁面跳轉到b頁面,然后在從b跳回c頁面,最后從c跳轉到b頁面。如果不設置自定義url屬性,點擊c頁面的返回直接跳到a頁面了,為了解決這個問題在從b跳轉到c頁面的時候把b頁面的相對路徑傳給c頁面作為c頁面跳轉回到b頁面的url即可。
// b頁面跳轉處
<navigator class="cu-item" navigateTo v-for="(user, index) in userData" :key="index" hover-class="none"
:url="jump(user)" open-type="redirect"></navigator >
// 跳轉頁面
jump: function(user) {
let data = {
title: '用戶詳情',
user: user,
url: '../user/user-query' // 注意這個地址是a頁面跳轉到b(當前頁)的相對地址
}
return this.contract(this.sonUrl, data) // 返回一個拼接好的地址
}
// c頁面詳情 注意這個url就是要返回的頁面的地址,就是上面的'../user/user-query'
<cu-custom :isBack="true" :url="url">
<block slot="backText">返回</block>
<block slot="content">{{ title }}</block>
</cu-custom>