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') });