晒网
晒网
  • 发布:2024-09-18 01:46
  • 更新:2024-09-19 15:55
  • 阅读:238

getCurrentPages 执行上一页的方法

分类:uni-app x

通过getCurrentPages 已经获取到了上个页中的方法 但怎么执行呢 看文档 现在只能get setstyle 方法怎么执行呢

获取到的方法名字或者属性什么的都是字符串类型
如果下
"updatemypagedata": function() {
[native code]
}

2024-09-18 01:46 负责人:无 分享
已邀请:
晒网

晒网 (作者) - 只晒网不打渔

使用场景是在A页点按钮跳转到B页 B页修改完数据后返回 时更新A页面的数据,没有用$on $off $emit 因为页面会反复打开很多次 不知道这种方法 会不会有什么问题 所以用了getCurrentPages 但是这个getCurrentPages 怎么调上一页的方法 不知道咋弄

晒网

晒网 (作者) - 只晒网不打渔

@DCloud_heavensoft @DCloud_UNI_yuhe @DCloud_UNI_BFC

杨杨得亿

杨杨得亿 - 这个人很懒,什么都没有留下~

let pages = getCurrentPages();  
let prevPage = pages[pages.length - 2]; //返回上一页  
prevPage.$vm.xxx(Obj); //调用上一页的xxx方法并传入Obj
7***@qq.com

7***@qq.com


$vm后面调用A界面方法

晒网

晒网 (作者) - 只晒网不打渔

$vm 不支持uniappx吧 这个是uniapp的

杨杨得亿

杨杨得亿 - 这个人很懒,什么都没有留下~

确实我没有看到你问的是uniappX,
但是哥们,你不看文档的吗?调用上一页只需要获取到实例即可,
至于 $vm 在Web 与 iOS端是支持的;

//uniapp中  
let pages = getCurrentPages();    
let prevPage = pages[pages.length - 2]; //返回上一页    
prevPage.$vm //是vue的实例
//uniapp x中  
const pages = getCurrentPages();  
const currentPage = pages[pages.length - 1];  
currentPage  //是page的实例

在uniapp x中直接拿page的实例去调即可

DCloud_UNI_yuhe

DCloud_UNI_yuhe

你可以这样,找到你需要的页面,找到$vm下的$callMethod,用这个方法来调用页面的方法

晒网

晒网 (作者) - 只晒网不打渔

晚上了试一下 今天是晚班 另外上面的杨杨得亿仁兄 page的实例试 不管是$vm 还是直接page.方法 编译都会报错的

@DCloud_UNI_yuhe pages[0].$vm.$callMethod('click') 编译过不去 昨天试过了的

晒网

晒网 (作者) - 只晒网不打渔

16:59:42.702 ‌error: Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: ‌
16:59:42.702 ‌public operator fun String.get(index: Number): Char defined in io.dcloud.uts‌
16:59:42.702 at pages/persioncenter/myself/childs/myself-edit.uvue:217:3
16:59:42.702 215| let updatepages = pages[pages.length -2]
16:59:42.702 216| console.log('updatepagesupdatepages',updatepages)
16:59:42.702 217| updatepages[0].$vm.kansee()
16:59:42.702 | ^
16:59:42.702 ‌error: No get method providing array access‌
16:59:42.702 at pages/persioncenter/myself/childs/myself-edit.uvue:217:15
16:59:42.702 215| let updatepages = pages[pages.length -2]
16:59:42.702 216| console.log('updatepagesupdatepages',updatepages)
16:59:42.702 217| updatepages[0].$vm.kansee()

@DCloud_UNI_yuhe

靐齉齾麤龖龗

靐齉齾麤龖龗 - 解决不了问题,那就解决提出问题的人

  • 晒网 (作者)

    这个用过 这个可以的 但是getCurrentPages在uniappx下怎么调方法 不会用 等官方回复一下

    2024-09-18 19:54

靐齉齾麤龖龗

靐齉齾麤龖龗 - 解决不了问题,那就解决提出问题的人

可以这样,不过那个页面需要导出你要调用的方法之后才能用

defineExpose({getDetails:getDetails})

,之后

getCurrentPages().at(-2).($||_).(exposed||exposeProxy).getDetails(参数)

这样调用...其中$和_,exposed和exposeProxy取其一都是可以的,不确定uniapp-x能不能用,可以试试

  • 晒网 (作者)

    理论上可行 不过官方的不可能只支持设置样式吧 要不然这玩意儿太鸡肋了

    2024-09-19 15:54

晒网

晒网 (作者) - 只晒网不打渔

@DCloud_UNI_yuhe

要回复问题请先登录注册