fail page "/pages/member/index 已解决但恶心
首先说明这个页面地址是实实存在的
说下我的场景,我某些场景要把当前页面地址及参数获取到,然后传递给下一个页面。所以我把当前页面地址及参数进行了base64字符串传递。下一个页面接收到后解析出来。解析出来的结果都跟传递的时候一模一样的,没有任何的区别。在我要跳转的地方我把接收到的值丢进去回来原来的来路后就出现 了fail page ‘pages/member/index’
console.log(that.data.options.page);
console.log('/pages/member/index');
console.log(typeof that.data.options.page);
console.log(typeof '/pages/member/index');
let url = '/pages/index/index';
if (that.data.options.page) {
url = that.data.options.page;
}
wx.redirectTo({
url: url
});
如果我把url直接手工输入 字符串是没有任何跳转问题的。一旦我换成变量就把不到路径了!
解决方法
options.page = '/' + Base64.decode(options.page);
强制在前面加了个 ‘/’ 通过参数带过来的/是有问题的,只有解析后再加。真恶心!
4 回复
A
onLoad(options) {
let isRegister = wx.getStorageSync('isRegister');
if (!isRegister) {
let url = Base64.encode(getUrl());
wx.redirectTo({
url: "/pages/authorize/index?page=" + url
});
return false;
}
this.getData();
}
page: /pages/member/index
B
onLoad(options) {
if (!(JSON.stringify(options) === "{}")) {
if (options.page) {
options.page = Base64.decode(options.page);
console.log(options.page);
}
this.setData({
options: options
});
}
},
B页面处理跳转
if (res.data.data.isRegister) {wx.setStorageSync('isRegister', true);
//默认地址
let url = '/pages/index/index';if (that.data.options.page) {
//来路地址
url = that.data.options.page;
}
wx.redirectTo({
url: url
});
} else {
wx.setNavigationBarTitle({
title: '注册用户'
});
that.setData({
display: true,
openid: res.data.data.openid,
token: res.data.data.token,
nickname: nickname
})
}
执行结果:fail page "/pages/member/index
结果图片