共计 690 个字符,预计需要花费 2 分钟才能阅读完成。
问题截图:
起因剖析:
JSON.parse 无奈辨认某些 url 中的特殊字符,所以报错
原谬误写法:
页面跳转:
netStepFn() {
uni.navigateTo({url: "/app/course/shopping?data=" + JSON.stringify(this.infoDict)
});
},
新页面取参:
onLoad(option) {// console.log(JSON.parse(option.data));
this.data = JSON.parse(option.data);
}
解决办法:
在 JSON.stringify()
之后将变量应用 encodeURIComponent
函数解决,这个 encodeURIComponent()
函数能够把字符串作为 URI
组件来进行编码。在跳转到指标页面接管时用decodeURIComponent
对 URI 组件进行解码,前面在通过 JSON.parse()
将变量还原,这样子就能达到预期成果了
正确代码:
netStepFn() {let infoDict = JSON.stringify(this.infoDict);
uni.navigateTo({url: "/app/course/shopping?data=" + encodeURIComponent(infoDict)
});
},
onLoad(option) {let paramsData = decodeURIComponent(option.data);
// console.log(JSON.parse(option.data));
this.data = JSON.parse(paramsData);
}
ok 了
正文完