问题截图:
原因分析:
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了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。