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