2017-08-03 8 views

答えて

-1

私はハックが見つかりました:

<Navigator 
    onNavigationStateChange={(prevState, currentState) => { 
    const getCurrentRouteName = (navigationState) => { 
    if (!navigationState) return null; 
    const route = navigationState.routes[navigationState.index]; 
    if (route.routes) return getCurrentRouteName(route); 
    return route.routeName; 
    }; 
    let currentRoute = getCurrentRouteName(currentState); 
    if(currentRoute == "A") { 
    console.log("TRIGGER") 
}}/>; 

をそして、あなたはあなたのコンポーネントにログに耳を傾け、次のように:

componentDidMount() { 
    let slf = this; 
    let log = console.log; 
    console.log = function(txt) { 
     if(txt == "TRIGGER") { 
     slf.myFunction(); // CALL HERE YOUR FUNCTION 
     } else { 
     log.apply(console, arguments); 
     } 
    } 
    } 
1

リアクトナビゲーションでは、ナビゲーション状態が変更されたときにメソッドを呼び出すために使用できるonNavigationStateChangeの小道具が用意されています。 screen tracking exampleには、新しい州のキーとルート名を取得できる例が示されています。例から

、あなたが routeをretrived一度 getCurrentRouteName方法では、あなたが const route = navigationState.routes[navigationState.index];を行うことができ、あなたは route.keyroute.routeNameを呼び出すことにより、キーとルート名を見つけることができます。

+0

問題があり、あなたは(行をコメントし)してください助けることができますか?ありがとうございました https://jsfiddle.net/gdydL0p4/ –

+1

@ScoopDevekこれについては、現行のReact-Navigation実装で直接解決策が見当たりません。私の同僚はこのアドオンを指摘しています。https:// github .com/satya164/react-navigation-addonsを参照してください。この機能に関する議論については、こちらをご覧ください:https://github.com/react-community/react-navigation/issues/51 – dotcomXY

+0

ありがとう、私は投稿します私が見つけたら解決 –

関連する問題