2

を反応させるには「ルート」のシーンが必要なのか、私はちょうど1つの質問があります。すべての例ではは、なぜ我々は本当に良いように思える1は、彼らが良いドキュメントと実装を持っている<a href="https://github.com/aksonov/react-native-router-flux" rel="nofollow">react-native-router-flux</a>で、私は私のアプリのためのルーティングライブラリを実装していますネイティブルータフラックス

は、シーンがそのように、ルートのシーンに包まれています。

<Scene key="root"> 
    <Scene key="sceneOne" component={SceneOne} /> 
    <Scene key="sceneOne" component={SceneTwo} /> 
</Scene> 

私はルートシーンなしでそれを使用してみましたが、それはまだ期待通りに動作します。したがって

<Scene key="sceneOne" component={SceneOne} /> 
<Scene key="sceneOne" component={SceneTwo} /> 

私私は現在、根の目的を理解していないので、質問。

答えて

2

あなた<Router>要素の下にそれらを追加するだけで、あなたのシーンを作成している場合は、必ずしもルート要素は必要ありません。たとえば、次のように動作します:

render() { 
    return <Router> 
     <Scene key="login" component={Login} title="Login"/> 
     <Scene key="register" component={Register} title="Register"/> 
     <Scene key="home" component={Home}/> 
    </Router> 
    } 

あなたがActions.create()を使用して、あなたのシーンを作成している場合隣接JSX要素が囲むタグに包まれなければならないので、しかし、あなたはルート要素が必要です。例えば(図書館の文書による):

import {Actions, Scene, Router} from 'react-native-router-flux'; 

const scenes = Actions.create(
    <Scene key="root"> 
    <Scene key="login" component={Login} title="Login"/> 
    <Scene key="register" component={Register} title="Register"/> 
    <Scene key="home" component={Home}/> 
    </Scene> 
); 

/* ... */ 

class App extends React.Component { 
    render() { 
    return <Router scenes={scenes}/> 
    } 
} 
+0

その他の理由はありますか? – Muhaimin

+0

これには他にもいくつかの理由がありますが、それは状況によって異なります。たとえば、ルート要素を持っている一つの理由は、すべての下線の子供たちのために同じでなければなりません小道具を追加することで、例えば、 'navigationBarStyle'小道具を使用してナビゲーションバーに共通のスタイルを設定します。 – George

+0

ルーターに複数のシーンがある場合の最初の解決策はもう機能しません。ルータには1つのシーンのみが含まれている必要があります。 –

関連する問題

 関連する問題