收藏
回答

页面options参数带json问题

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 客户端 6.7.3 2.4.1

- 当前 Bug 的表现(可附上截图)

当小程序未启动时,通过转发卡片进入小程序,参数带json,这时候json是字符串,但小程序已经启动,点击转发卡片进入小程序,这时候json变成了object



- 预期表现

希望类型一致


最后一次编辑于  2018-12-01  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • HS
    HS
    2018-12-03

    确认下是 iOS / Android 都会出现此问题吗,是否自己的代码有做类似 parse 的处理呢

    2018-12-03
    赞同
    回复 4
    • rinao
      rinao
      2018-12-03

      app里面对options.query处理过,这部分逻辑去掉之后,首页拿到的就是字符串了,为什么在app处理options.query会影响到页面的options?

      2018-12-03
      回复
    • HS
      HS
      2018-12-03回复rinao

      怎么处理的,有代码实现吗

      2018-12-03
      回复
    • rinao
      rinao
      2018-12-03回复HS
      //app.js
      App({
        onLaunch: function (options) {
          this.parse(options);
        },
        onShow: function (options) {
          console.log("onShow:", options);
          this.parse(options);
        },
        parse: function (options) {
          if (options.query.share && typeof options.query.share == "string") {
            options.query.share = JSON.parse(options.query.share);
          }
        }
      })
      //index.js
      Page({
        data: {
       
        },
        onLoad: function (options) {
          console.log("options:", options);
        },
        onShareAppMessage: function () {
          let params = {
            shareType: "index",
            shareLevel: 1,
            from: 1
          };
          let path = `pages/index/index?share=${JSON.stringify(params)}`;
          return {
            path: path
          };
        },
      })


      2018-12-03
      回复
    • HS
      HS
      2018-12-03回复rinao

      建议对生命周期函数传入的 options 进行深拷贝,再进行利用。

      2018-12-03
      回复