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返回上一页并传递参数的主要内容,如果未能解决你的问题,请参考以下文章

uniApp,返回上一页并刷新数据

uniApp,返回上一页并刷新数据

uniApp,返回上一页并刷新数据

js 返回前一页并刷新页面方法

uni-app之自定义组件

js返回上一页并刷新的几种方法