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

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

作者: SevenLonely | 来源:发表于2019-07-09 15:55 被阅读0次

    方法一

    1.问题

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

    如果直接传递

    a页面

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

    b页面

    const data = JSON.parse(options.data);
    // 执行该步骤会报错
    

    2. 解决办法

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

    a页面

    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页面

    let dataStr = options.data.replace(/\@@111/g, '?');
    dataStr = dataStr.replace(/\@@222/g, '&');
    const data = JSON.parse(dataStr);
    

    方法二

    使用路径加密以及解码方法

    a页面

    var data = {a:'?34ew',b:'&34242'};
    var objStr = encodeURIComponent(JSON.stringify(data));
    wx.navigateTo({
        url: `/pages/info/info?data=${objStr}`
    });
    

    b页面

    let dataStr = decodeURIComponent(options.data);
    const data = JSON.parse(dataStr);
    

    encodeURIComponent()加密、decodeURIComponent()解码将字符串转换为原来的字符串

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/uoixkctx.html