0

私は、反応ネイティブルータフラックスライブラリを使用して簡単な反応ネイティブアプリを構築しています。React + Reduxは私の反応ネイティブアプリ用に設定されています。接続を処理する正しい方法は何ですか?

  • ホーム
  • 検索私のような私のapp.jsにそのように定義されている

  • お気に入り:

    <Router> 
        <Scene key="root"> 
        <Scene 
         key="home" 
         component={Home} 
        /> 
        <Scene 
         key="search" 
         component={Search} 
        /> 
        <Scene 
         key="favorites" 
         component={Favorites} 
        /> 
        </Scene> 
    </Router> 
    

    は、私が唯一の3シーンを持っています私の中でsetup.js、私は次のようしている:

    <Provider store={store}> 
        <App /> 
    </Provider> 
    

    私の質問は、私が店に各コンポーネント(ホーム、検索、お気に入り)を接続する必要がある、または私は私のアプリ(app.js)でそれを行う必要がある場合かどうかであります各シーンコンポーネントにアクションと状態を渡します。

    私は、次のアクションがあります。

    • getRecent()
    • searchByKeywords(キーワード)
    • searchByCategory(区分)
    • addToFavorites(PHOTOID)
    • removeFromFavorites(PHOTOID)

    以下のレデューサー:

    • photoResults
    • お気に入り

    私はここで設定するための最良の方法を教えてください。各コンポーネントの状態やアクションに接続するか、Appコンポーネントレベル(ルータのシーンが定義されている場所)で一度実行してパスしてください。私が使用してきた

    function mapStateToProps(state) { 
        return { 
        photoResults: state.photoResults, 
        favorites: state.favorites 
        }; 
    } 
    
    function mapDispatchToProps(dispatch) { 
        return { 
        actions: bindActionCreators(actionCreators, dispatch) 
        }; 
    } 
    
  • 答えて

    0

    アプローチは、ダン・アブラモフ監督はhereを説明しているように、スマートとダムのコンポーネントにアプリを分割することです。次に、connectを使って状態をスマートコンポーネントに入力し、プロンプトをダムのコンポーネントに渡します。

    これにより、ダムコンポーネントが特定の状態に関連付けられていないため、多くの場所で再利用できます。

    0

    各コンポーネントの状態とアクションに接続するか、(ルータのシーンが定義されている)Appコンポーネントレベルで1回実行してパスしてください。

    コンポーネントレベルでアクションを呼び出すことをお勧めします。ストアをグローバルにアクセス可能にします。コンポーネントからアクションを呼び出すだけです。これは、アプリのモジュール性を確保するために重要です。

    関連する問題