uniapp返回上一页并传递参数
Posted Right atrium
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniapp返回上一页并传递参数相关的知识,希望对你有一定的参考价值。
说是传递参数,实际是在你返回之前先修改了上一页的data里面的数据再进行返回上一页的操作。
// 获取所有页面栈实例列表
let pages = getCurrentPages();
// 当前页页面实例
let nowPage = pages[ pages.length - 1];
// 上一页页面实例
let prevPage = pages[ pages.length - 2 ];
// 修改上一页data里面的times参数值为100
prevPage.$vm.times = 100;
//uni.navigateTo跳转的返回,默认1为返回上一级
uni.navigateBack(
delta: 1
);
getCurrentPages()
getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。
注意: getCurrentPages()仅用于展示页面栈的情况,请勿修改页面栈,以免造成页面状态错误。
每个页面实例的方法属性列表:
方法 | 描述 | 平台说明 |
---|---|---|
page.$getAppWebview() | 获取当前页面的webview对象实例 | App |
page.route | 获取当前页面的路由 | - |
$getAppWebview()
uni-app 在 getCurrentPages()获得的页面里内置了一个方法 $getAppWebview() 可以得到当前webview的对象实例,从而实现对 webview 更强大的控制。在 html5Plus 中,plus.webview具有强大的控制能力,可参考:WebviewObject (opens new window)。
但uni-app框架有自己的窗口管理机制,请不要自己创建和销毁webview,如有需求覆盖子窗体上去,请使用原生子窗体subNvue。
注意:此方法仅 App-Vue 支持
官方文档:https://uniapp.dcloud.net.cn/api/window/window.html#getcurrentpages
Flutter 返回上一页并刷新
用flutter路由跳转页面时,主要用到的就是Navigator.push();
和Navigator.pop();
两个方法。
但是存在一个问题:
当我从主页跳转到另一个页面,再返回到主页时,主页并不能主动刷新。怎么解决呢?
答案时,当返回到主页时,监听到返回事件,然后主动触发主页刷新。
class PageOne extends StatefulWidget {
@override
_PageOneState createState() => new _PageOneState();
}
class _PageOneState extends State<PageOne> { // 第一个页面
_getRequests()async{
print(\'这里进行操作\');
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RaisedButton(onPressed: ()=>
Navigator.of(context).push(new MaterialPageRoute(builder: (_)=>PageTwo()),)
.then((val)=>val?_getRequests():null), // 通过then进行监听回调参数
),
));
}
}
class PageTwo extends StatelessWidget { // 第二个页面
@override
Widget build(BuildContext context) {
//somewhere
Navigator.pop(context,true); // 第二个就是需要传到参数
}
}
以上是关于uniapp返回上一页并传递参数的主要内容,如果未能解决你的问题,请参考以下文章