小程序在路由传参接收时获取不全(个人笔记)

当传递的参数是一个完整的url时,如:http://www.baidu.com?id=1&name=ken

wx.navigateTo({
    url: '/pages/preview/preview?file=' +url,
    success: (result) => {
        console.log("result", result);
    },
    fail: () => {},
        complete: () => {}
  });

接收参数:只有http://www.baidu.com部分

    onLoad: function(options) {
        console.log("options", options.file); // 只有http://www.baidu.com部分
        this.setData({
            file: options.file
        })
    },

解决方法:encodeURIComponent() 编码

定义和用法:
encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

wx.navigateTo({
      url: '/pages/preview/preview?file=' + encodeURIComponent(url),
      success: (result) => {
      console.log("result", result);
     },
      fail: () => {},
      complete: () => {}
    });
    onLoad: function(options) {
        console.log("options", decodeURIComponent(options.file)); // http://www.baidu.com?id=1&name=ken
    this.setData({
        file: decodeURIComponent(options.file)
    })
},
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容