关于微信小程序路径参数传递字符串?或者&问题

2019-07-10 14:46:36 浏览数 (1)

1.问题

在微信小程序中,有时需要传递字符串?或者&,英文地址栏中的 &? 符号的会被解析的,但是可以用其他标志性的字符,也是在地址栏中不会用不到的字符代替 比如@

如果直接传递

a页面

代码语言:javascript复制
var data = {a:'?34ew',b:'&34242'};
var objStr = JSON.stringify(data);
wx.navigateTo({
    url: `/pages/info/info?data=${objStr}`
});

b页面

代码语言:javascript复制
const data = JSON.parse(options.data);
// 执行该步骤会报错

2. 解决办法

我们用在A页面中 需要携带一个json对象去B页面时

a页面

代码语言:javascript复制
var data = {a:'?34ew',b:'&34242'};
var objStr = JSON.stringify(data);
objStr = objStr.replace(/?/g, '@@111');
objStr = objStr.replace(/&/g, '@@222');
wx.navigateTo({
    url: `/pages/info/info?data=${objStr}`
});

b页面

代码语言:javascript复制
let dataStr = options.data.replace(/@@111/g, '?');
dataStr = dataStr.replace(/@@222/g, '&');
const data = JSON.parse(dataStr);

0 人点赞