HarmonyOS 页面导航跳转回调传参问题
采用官方推荐的页面导航设计方案。
若从A页面使用NavPathStack.pushPath({ name: BrouterName, param: routerParam, onPop: routerOnPop })方法跳转到B页面,
再从B页面使用NavPathStack.pushPath({ name: CrouterName, param: routerParam, onPop: routerOnPop })方法跳转到C页面,
再从C页面调用NavPathStack.popToName(name: ArouterName, result: Object)返回A页面,此时A页面的onPop回调不会触发,那怎么拿到popToName传入的result呢?
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS 页面导航跳转回调问题 
1383浏览  • 1回复 待解决
HarmonyOS 页面跳转回调问题 
1063浏览  • 1回复 待解决
HarmonyOS 路由跳转回调问题 
1220浏览  • 1回复 待解决
HarmonyOS  页面传参问题 
1689浏览  • 1回复 待解决
HarmonyOS  pageInfos.pushPath跳转页面传参问题 
1776浏览  • 1回复 待解决
JS跳转Java传参问题? 
6167浏览  • 1回复 待解决
如何在navigation跳转页面时返回传参 
3548浏览  • 1回复 待解决
router跳转页面,传参用HashMap,获取参数失败 
2937浏览  • 1回复 待解决
HarmonyOS router跳转返回如何传参 
1105浏览  • 1回复 待解决
HarmonyOS 页面间如何传参? 
2210浏览  • 1回复 待解决
HarmonyOS Web组件加载本地页面传参问题 
1697浏览  • 1回复 待解决
HarmonyOS 路由跳转获取跳转传参的方式 
2519浏览  • 1回复 待解决
HarmonyOS 本地html传参问题 
2125浏览  • 1回复 待解决
HarmonyOS  如何实现点击通知跳转app指定页面并传参 
2361浏览  • 1回复 待解决
HarmonyOS 调用flutter页面并传参 
929浏览  • 1回复 待解决
HarmonyOS 参数传参问题 
1227浏览  • 1回复 待解决
HarmonyOS  Navigation传参问题 
3013浏览  • 1回复 待解决
HarmonyOS  HTTP使用Map传参问题 
1263浏览  • 1回复 待解决
HarmonyOS router跳转新页面之后使用function作为参数,想在新页面进行回调但是传参到新页面丢失 
960浏览  • 1回复 待解决
HarmonyOS @Builder Params传参问题 
965浏览  • 1回复 待解决
HarmonyOS router传参获取问题 
1567浏览  • 1回复 待解决
HarmonyOS  页面传参后对象出错 
883浏览  • 1回复 待解决
HarmonyOS router.back方法的传参和返参问题 
1622浏览  • 1回复 待解决
HarmonyOS 页面内组件如何感知路由返回传参 
1037浏览  • 1回复 待解决
HarmonyOS 自动化测试传参问题 
1155浏览  • 1回复 待解决





















此处onPop不触发,是因为在页面跳转时,传的回调函数,是对应页面的出栈的回调。如:A跳转B,此时定义的是B的出栈回调;B跳转C,此时定义的是C的出栈回调。如果此时在C页面直接popToName至A,是C出栈,调用C的出栈回调,方法是在B中执行。由于C直接返回A,B页面走的是清除,因此A页面没有触发B页面的出栈回调。
对于该问题,这里提供几个思路去解决:
1.如果页面使用的是router作为路由,可以使用router.back并指定页面同时添加返回带的参数,中间页面的历史都会被清除。
2.可以使用replacePathByName+removeByName替代popToName,中间页面使用removeByName清除,需要返回的页面使用replacePathByName 跳转并带参数。
3.可以使用popToName,并使用其他组件之间的传值方法,比如但不限于LocalStorage、自行传递方法或对象做数据处理。