追梦随想
追梦随想
  • 发布:2020-01-13 15:11
  • 更新:2020-01-17 21:07
  • 阅读:607

【报Bug】新页面传参的时候会把分号当成数组处理!

分类:uni-app

A 页面打开 B 页面的时候,传参图中,如果参数里面有分号,则会按分号分割成数组。

源数据

target={"user_id":3,"user_name":"王大锤","session_id":"e034c70ba2561e846a90e3dbd05a3b39","last_message":"😂😂😂","last_msg_time":"2020-01-13 10:40:13","unread_msg":1}

B 页面接收到的数据

{  
    "target": "{\"user_id\":3,\"user_name\":\"王大锤\",\"session_id\":\"e034c70ba2561e846a90e3dbd05a3b39\",\"last_message\":\"",  
    "#128514;": ["", ""],  
    "#128514;\",\"last_msg_time\":\"2020-01-13 10:40:13\",\"unread_msg\":1}": ""  
}

可以看出把 ;& 当成分割的条件了,导致 B 页面接收到参数后,无法处理了。
这个问题本来是 SQLite 的,Alpha 版本把那个问题解决了,然后又出现新的问题了。。。
【报Bug】android.database.sqlite.SQLiteException: unrecognized

2020-01-13 15:11 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

用法有误,和v3没有关系,含有特殊字符的参数需使用 encodeURIComponent decodeURIComponent 编解码

uni.navigateTo({  
  url: './page?target=' + encodeURIComponent(JSON.stringify(target))  
});
console.log(JSON.parse((decodeURIComponent(e.target))).last_message)
追梦随想

追梦随想 (作者)

测试机是安卓,苹果版没测过

DCloud_UNI_GSQ

DCloud_UNI_GSQ

是否v3模式?
参数是自己在url里拼接的吗?

  • 追梦随想 (作者)

    是的,V3模式,url是拼接好加在URL后面,然后传递的,遇到对象或数组转换成 json 格式

    2020-01-17 20:34

  • DCloud_UNI_GSQ

    回复 追梦随想: 比如你说的源数据就是转json吗?

    2020-01-17 20:36

  • 追梦随想 (作者)

    回复 DCloud_UNI_GSQ: 对,就是转成json后的,但实际问题跟json数据无关,就是参数里面有分号,在传递的时候就被处理成数组了

    2020-01-17 20:48

  • DCloud_UNI_GSQ

    回复 追梦随想: 分号在json里还是外?

    2020-01-17 20:51

  • 追梦随想 (作者)

    回复 DCloud_UNI_GSQ: json 里面,是这一段 "last_message":"😂😂😂",

    2020-01-17 20:55

该问题目前已经被锁定, 无法添加新回复