微信小程序踩坑系列(三)—— 带参跳转页面

页面跳转最好不要带参跳转,采用全局变量比较好。

为什么这么说呢
比如:从 A 页面到 B 页面带的对象 c = {name:'小明',age:'18',hobby:'play'},
     从 AA 页面到 B 页面带的对象 d = {pname:'小红',page:'17',phobby:'play'},
对象内部的字段名称不一样,B页面在拿到该对象后解析就蒙了

1.在 A 页面中跳转前设置

wx.navigateTo({
   url: 'B?obj='+JSON.stringify(c)
})

2.在 AA 页面中跳转前设置

wx.navigateTo({
   url: 'B?obj='+JSON.stringify(d)
})

3.在B页面中onLoad()方法中

onLoad(options) {
    this.obj = JSON.parse(options.obj)
    this.name = obj.name 还是 this.name = obj.pname 不好判断是从A页面来的还是AA页面来的
}
但是不传参,直接定义全局变量就方便得多

在全局中定义e ,在 A 页面中跳转前设置

        this.$parent.globalData.e.name = c.name;
        this.$parent.globalData.e.age = c.age;
        this.$parent.globalData.e.hobby= c.hobby;
        wx.navigateTo({
          url: 'B'
        })

在全局中定义e ,在 AA 页面中跳转前设置

        this.$parent.globalData.e.name = d.pname;
        this.$parent.globalData.e.age = d.page;
        this.$parent.globalData.e.hobby= d.phobby;
        wx.navigateTo({
          url: 'B'
        })

在B页面中onLoad()方法中

onLoad() {
    this.obj = this.$parent.globalData.e,
    console.log(obj.name);
    console.log(obj.age);
}

你可能感兴趣的:(微信小程序踩坑系列(三)—— 带参跳转页面)