诗小柒
诗小柒
  • 发布:2018-09-19 17:41
  • 更新:2020-01-13 14:49
  • 阅读:21266

uniapp 如何调用上一个页面的方法

分类:uni-app

vue 中 的$on、 $emit 没有效果

getCurrentPages() 只能获取到 data里面的值 无法使用上一个页面的方法

vuex 据说可以,但是怎么研究我都只能做到修改数据,无法调用方法

还请知道的朋友指点一下,谢谢啦。

2018-09-19 17:41 负责人:无 分享
已邀请:
marconiho

marconiho

    const that = this;  
var pages = getCurrentPages(); //当前页面栈  
if (pages.length > 1) {  
	var beforePage = pages[pages.length - 2]; //获取上一个页面实例对象  
	beforePage.$vm.changeData(); //触发父页面中的方法change()  
 }  

记得加 .$vm,小程序里面beforePage.changeData()可以使用,但是app上需要用beforePage.$vm.changeData();
changeData()为父页面的方法,也就是上一页的方法。

  • 4***@qq.com

    没用呢。必须要手机端吗?我在谷歌的时候没用


    2020-04-01 13:57

  • marconiho

    回复 4***@qq.com: 对的,$vm网页端怎么可能识别嘛


    2020-04-07 10:13

  • 蹦豆儿

    h5的话,用哪个方法?


    2020-10-19 11:29

  • 1***@qq.com

    想请问一下有没有办法调用上一个页面的子组件里的方法呢?


    2020-12-10 16:12

Trust

Trust - 少说废话

2***@qq.com

2***@qq.com - 没掉头发的程序员宝宝

var pages = getCurrentPages();
var page = pages[pages.length - 1];
// #ifdef APP-PLUS
var currentWebview = page.$getAppWebview();
console.log(currentWebview.id);//获得当前webview的id
currentWebview.setStyle({//设置当前webview的style
titleNView:{
titleText:"test"
}
});
// #endif

2***@qq.com

2***@qq.com - 没掉头发的程序员宝宝

getCurrentPages();写在哪里啊?

westShin

westShin

/**

  • 回退,并传参回调父页面的方法
    */
    const fallback = ({delta=1, method='', arg}) => {
    const pages = getCurrentPages();
    if (pages.length > 1) {
    const prePage = pages[pages.length - delta -1];
    prePage.$vmmethod; //触发父页面中的方法
    }
    uni.navigateBack({delta})
    }

封装在commonUtil里面,调用起来方便点

该问题目前已经被锁定, 无法添加新回复