Ionic4 navController back with params (callback)



只是寻找从子路由发送数据的最佳实践,备份到其父路由。例如,如果我有一个列表视图,并且我想添加一个足够复杂的项目,以值得拥有自己的页面,那么如何将添加的项目恢复到列表视图?现在显然我可以重新获取整个列表,但这似乎有点愚蠢且效率不高。我发现当路由器导航AddPage时,我也可以在ActiveRoute参数中传递"回调函数",但这也感觉不对(尽管我比第一个选项更喜欢它)。如果我可以通过 nav.back() 方法将数据传回去,那就太好了,但是推荐的方法来做我需要做的事情是什么?

pass in a callback when transitioning(it is not working in ionic4)
// callback...
myCallbackFunction = function(_params) {
return new Promise((resolve, reject) => {
resolve();
});
}
// push page...
this.navController.navigateForward(["add-product",{"callback": myCallbackFunction}]);
in the AddProductPage
this.activatedRoute.params.subscribe((data: any) => {
this.callback = data.callback;
console.log("callback "+this.callback)
});
error:-i m getting data in string form(here i m getting callback data in string format)
output:-
callback "function(_params) {
return new Promise((resolve, reject) => {
resolve();
});
"
this.callback(param).then(()=>{
this.navController.pop();
});

我按照普拉迪普所说的去做,它的工作原理是: 将 navCtrl 放在构造函数参数中:

private navCtrl: NavController,

当您想要返回时,代码中的某个位置:

let navigationExtras: NavigationExtras = {
state: {
param: "1",
}
};
this.navCtrl.navigateBack(['previouspage'], navigationExtras)

在上一页构造函数中:

constructor(
........
private router: Router,
){
if (this.router.getCurrentNavigation().extras.state && this.router.getCurrentNavigation().extras.state.param) {
let param = this.router.getCurrentNavigation().extras.state.param
}
}

最新更新