收藏
回答

求解答,页面传值回来,onshow中this.setData()方法后页面空白,什么原因导致的?

页面传值回来,onshow中this.setData()方法后页面空白,打印出数据已经传过来了

一直没找到原因,或者有什么好的返回页面并传数据更改界面显示的方法,新手小白求赐教


回答关注问题邀请回答
收藏

4 个回答

  • 你好耀眼。
    你好耀眼。
    2021-09-14

    如果是传值给上一个页面的话,第二张图直接

    prevPage.setData({

    player_list:player_list

    })

    就行了,prevPage.setData就是和在当前页面的this.setData效果一样的,直接设置就行没不用再onShow再次赋值

    2021-09-14
    有用 1
    回复 2
  • xplee
    xplee
    发表于小程序端
    2021-09-14

    不应该是mydata.player_list吗?传值可以临时存到app全局变量里或storage里

    2021-09-14
    有用 1
    回复 1
    • 张三疯
      张三疯
      2021-09-15
      确实是,搞定了
      2021-09-15
      回复
  • 卡卡
    卡卡
    2021-09-14

    正常做法是事件,onshow的页面监听一个事件,返回的页面触发事件,并带上参数,如果有用麻烦点有用和赞,谢谢。

    相关代码


    //util.js
    function eventPubsbu() {
        var all = {};
        var $on = function (name, handler{
            name = name.split(',').filter(item=>item);
            name.forEach((name) => {
                if (!all[name])
                    all[name] = [];
                all[name].push(handler)
            });
        }
        var $off = function (name, handler{
            name = name.split(',').filter(item=>item);
            name.forEach((name) => {
                if (!all[name])
                    return;
                all[name] = all[name].filter(item => item != handler);
                if (all[name] == '')
                    delete all[name];
            });
        }
        var $emit = function (name, ...params{
            name = name.split(',').filter(item=>item);
            name.forEach((name) => {
                if (!all[name])
                    return;
                all[name].forEach((item) => {
                    item.apply(undefined, params);
                })
            });
        }
        return {
            $emit,
            $off,
            $on,
        }
    }
    
    module.exports = {
        eventPubsbu,
    }
    
    //app.js
    onLaunchfunction (options{
       var t = Util.eventPubsbu();
       Object.assign(this, t);
    }
    
    //注册事件
    app.$on('login,changeQY'this.getName);
    
    //触发事件
    app.$emit('login',参数)
    
    2021-09-14
    有用 1
    回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2021-09-14

    页面传值:

    1、使用wx.setStorageSync、wx.getStorageSync,a页面wx.setStorageSync,b页面wx.getStorageSync

    2、使用app.globalData,a页面app.globalData.xxx=***,b页面var xxx = app.globalData.xxx

    3、使用wx.navigateTo的events通信接口进行页面传值

    2021-09-14
    有用
    回复
登录 后发表内容