问题:
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>