问题截图:
起因剖析:
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了
发表回复