3

我使用反应原生路由器通量在我的反应本机应用程序。我想覆盖返回按钮按下事件,因为我想在返回之前添加确认弹出窗口。我搜索了很多,但我发现的所有链接都是为了覆盖Android的硬件后退按钮。我不仅想要覆盖硬件后推,还希望覆盖导航栏中的后退按钮事件(适用于Android和iOS)。请帮我在这里。覆盖回来按回应原生路由器通量

编辑:我发现在我的场景backonBack添加两个道具覆盖后的新闻发布会上的一种方式。但现在的问题是我希望这个后援是有条件的。我正在将布尔道具edit传递给这个场景。如果编辑是真的,那么只有我想覆盖后退,否则我只是想要默认的。那么如何使用传递给该场景的道具来更改我的Router.js中的Scene参数?

须藤代码

if(edit){ 
    openConfirmationDialog(); 
} else { 
    Actions.pop(); 
} 

回答

2

好吧!我找到了方法。

在任何地方,我打开了这一幕,我可以通过onBack回调这样Actions.Home({onBack:() => console.log('custom back callback') });

这样我可以提供动态回回调每次我打开那一幕的时间。

+0

你找到任何解决方案,您可以访问字段或被叫行为的道具以检查某些条件? –

0

对我来说,通过@Raj Suvariya上述解决方案工作,但只有当我添加了一个“renderBackButton”回调到其“onBack”我想自定义(在Raj的例子中,“家”)的场景: 所以这被添加到场景的定义:

renderBackButton={()=>{}} 

,这是在导航添加到页面中,相同Raj的回答以上:

Actions.Home({onBack:() => console.log('custom back callback') });