在微信小程序中一般通过navigata或者redirect时候URL来携带参数,然后在目标页面的onLoad函数中获取这些URL参数微信小程序首页代码。
例如:
//A页面相关代码
wx.navigateTo({
url:"/pages/Apage/Apage?a=1&b=2"
})
//B页面相关代码
Page({
onLoad:function(options){
var a=options.a;//a的值:1
var b=options.b;//b的值:2
}
})
但这个方法是对于目标文件还没创建时有效,因为一个页面onLoad函数在页面生命周期中,只执行一次。如果是A跳到B,再回到A并把B的数据传回来,就没法实现了。
一、使用全局存储数据
1.将要储存的数据,存储到App对象上(如globalData属性)。
var app=getApp()
app.globalData.mydata={a:1,b:2}//
wx.navigataBack();//返回上一页
2.将要传递的数据,储存在小程序本地数据缓存(Storage)中。
wx.setStorage({
key:"mydata",
data:{a:1,b:2},
success:function(){
wx.navigataBack();//返回上一页
}
})
注:全局数据存储,必须谨慎管理,生命周期等问题
二、从页面路由栈中直接获取和操作目标Page对象
这种方式,是通过调用小程序的API getCurrentPages(),来获取当前页面路由栈信息,这个路由栈是按照页面路由顺序存放着相应的Page对象,可以很容易获得上一页的Page对象,从而使直接调用Page对象的属性和方法成为可能。
var pages=getCurrentPages();
var currPage=pages[pages.length-1];//当前页面
var prevPage=pages[pages.length-2];//上一个页面
//现在就可以,直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
mydata:{a:1,b:2}
})
wx.showModal({ title: '提示', content: '这是一个模态弹窗', success: function(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } })
1、首先在index.js中想写逻辑代码。
2、其中page里面的data里面是前台展示时的一些数据,而onload里面是调用的接口。
3、调用的方式为get调用,返回的数据存在res里面。
4、返回的数据,而data中就是我们需要的数据。
5、data:一个入参。method:请求方式,如果是POST请求必须按上面写,默认是get请求,不用处理。complete:页面请求完成后的方法,通过that.setData将数据传递给WXML页面。success:页面加载成功后的执行方法。
丙肝是什么病微信交流群,丙肝母婴贴吧
耳鸣微信交流群,全国耳鸣交流群
打呼噜微信交流群,怎么加入陌生微信群
「东莞车迷微信群」求个东莞的大众高尔夫微信群
「聋人微信和扣扣群」微信有聋哑人的群吗
「加入菏泽大型微信群」如何加入菏泽一中高三一部十八班微信群
「启动微信群名软件」微信群怎么设置不让别人改群名?
「微信红包群规则复制」微信红包群规章制度是什么样的?
「微信稀奇古怪总代群」我想在微信上卖稀奇古怪的玩意,一件代发的,不需要加盟费!有的留个
「微信群群主有哪些特权」微信群主有哪些特权?