父页面跳转到子页面,子页面进行操作之后跳回父页面,如何将子页面的值也传给父页面?
发布于 5 年前 作者 vdai 16997 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

前两天第一次接触微信小程序,一直靠百度在写,但是今天真的很希望有大佬能教一教!总是一点小问题卡着浪费太多时间了。

现在有“我的”页面,在“我的”页面有登录入口,可以进入“登录”页面,执行完登录操作之后,跳转到“我的”

页面。这里希望把username相关的信息也传递到“我的”页面。试过onload方法,只会在我第一次进入“我的”页面执行,不成功。查到可以在“登录”页面用getCurrentPages()获取当前页面路由栈的信息,然后得到上一页面,这样

var pages = getCurrentPages();

var currPage = pages[pages.length - 1];   //当前页面

var prevPage = pages[pages.length - 2];  //上一个页面

然后再prevPage.setData,可是我不知道具体怎么在上一个页面得到数据,我也没查到这个setData怎么用。

有懂得会的麻烦热心的赐教一下!万分感激!

7 回复

page内 可以通过getApp获取全局变量appapp上可以定义一个属性用来传值或者存储值

可以编辑一个工具

App({
 
  pageOpts :function(Page,options){
    let key =    Page.is // 这个用来做KEY值,就是页面当前的路由
    let val = options // 这个就是onload时页面传递过来的options;
 
  if(val){// 如果带options,则是值的存储方式
     this.__pageOpts__ [key] = val;
  }
// 返回最新的值
return this.__pageOpts__[key];
  }
})
let app = getApp();
Page({ 
onLoad:function(options){
app.pageOpts(this,options) // 页面参数值存储
app.pageOpts(/*Page*/) // 传递相应的Page,获取对应page的页面参数值
}
 
})

这样做的就是 ,onload里面只是存值,

取值在任意位置都可以去,

要在onload里面吗?可是我首先在“我的”页面的时候onload就已经执行了,从“登录”页面回到“我的”页面的时候不会再执行onload了,这样会不会还是没有

非常感谢!已经用全局方式解决了!感谢!

现在决定用全局变量做的试试,可不可以教下如何使用?

出了onload,onshow里面也是可以拿的

A --> B  B --> A ?页面间传值方案1.  页面传值通常就是onload 通过url传值

2.  共有变量传值

    1. 如果值比较多,可以通过storage传值。

    2. App 全局变量也可以传值

回到顶部