Raj*_*iya 5 javascript onbackpressed react-native react-native-router-flux
我在我的本机应用程序中使用本机路由器通量。我想覆盖后退按钮按下事件,因为我想在返回之前添加确认弹出窗口。我搜索了很多,但我找到的所有链接都是用于覆盖 Android 的硬件后退按钮。我不仅想覆盖硬件后退,还想覆盖导航栏中的后退按钮按下事件(适用于 Android 和 iOS)。请帮帮我。
编辑:我找到了一种方法,通过在我的场景中添加两个道具back和onBack. 但现在的问题是我希望这个 backpress 是有条件的。我正在edit向这个场景传递一个布尔道具。如果编辑为真,那么我只想覆盖 backpress 否则我只想要默认的。那么如何使用传递给该场景的道具更改我的 Router.js 中的 Scene 参数?
须藤代码
if(edit){
openConfirmationDialog();
} else {
Actions.pop();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对我来说,@Raj Suvariya 的上述解决方案有效,但前提是我向我想要自定义的“onBack”场景添加了“renderBackButton”回调(Raj 示例中的“Home”场景):所以这被添加到场景的定义:
renderBackButton={()=>{}}
Run Code Online (Sandbox Code Playgroud)
这是在导航到页面时添加的,与上面 Raj 的回答相同:
Actions.Home({onBack: () => console.log('custom back callback') });
Run Code Online (Sandbox Code Playgroud)
好吧!我找到了方法。
无论我从哪里打开这个场景,我都可以像这样传递 onBack 回调Actions.Home({onBack: () => console.log('custom back callback') });
这样我每次打开该场景时都可以提供动态回调。