2016-10-14 11 views
0

でReduxの全体ツリー項目の交換しますか?には、以下のReduxの状態の木を考えると異なる減速

たとえば、3つのレデューサーを持つことができます。userproductscompetitionsです。私はアプリの状態を膨らまするし、また必要はありませんしたくないようuserを参照せずに

{ 
    page_data: { 
     productPage: {...} 
    } 
} 

:私は、製品ページにユーザーページから切り替えた場合、私はショーにpage_dataブランチをしたいと思いますそのデータは製品ページに表示されます。

注:私は参考としてcombineReducersを使用しています。

これは可能なのでしょうか。最良のアプローチは何ですか?

+0

製品ページでは、 'productPage'を含むアクションを' dispatch'し、 'reducer'に' productPage'で新しい状態を作成します。 –

+0

それでも、アプリ状態にuserPageは含まれていますか? – Paul

+1

いいえ、次のような全く新しい状態を作成できます: 'Object.assign({}、oldState、{page_data:{productPage:{...}}})' –

答えて

0

複数のレデューサーに同じ名前を使用するのは間違っています。サポートされているだけでなく、間違った方法です。これを達成するには、FLUSH_PAGE_DATAアクションを使用します。このアクションをディスパッチすると、すべてのレデューサーのページデータがフラッシュされます。それはこのようなものに見えます。

case 'FLUSH_PAGE_DATA': 
    return { }; 

次に、すべての操作で渡すアクティブなページに基づいて、ページデータの異なる構造を作成できます。

関連する問題