2017-03-16 22 views
-1

私はアプリのカレンダー部分を作り、再利用できるようにしました。反応還元剤のリデューサーと構造が良い

私はカレンダーを使って別の部分も作った。

私はcombineReducers関数を使用しました。

import calendar from '../../common/calendar/Reducer'; 
import insatester from './Reducer'; 

const reducerCombiner = combineReducers({ 
    calendar, 
    insatester 
}); 
export default reducerCombiner 

次に、組み合わせたレデューサーを使って店を作りました。

まずはうまくいくようです。 しかし、店とデータは分けられました。カレンダー
store.insatester.data2 <から - - 私は、再利用可能なカレンダーにはないと思うので

insatesterからそれから私は、insatesterからカレンダーのイベントDBのデータを取得しようとしました
store.calendar.data1 <は
例) それを行う。 しかし、問題は、カレンダーアプリケーションからストアドdbデータを使用してもstore.insatesterにアクセスする必要があります、それは理にかなっていません。

質問1。どのように私は同じレベルを持つ店舗を作るために減速機を組み合わせることができますか?
例)
store.data1 < - カレンダー
store.data2 <から -

Question2 insatesterから。私の構造に問題がありますか?どうすれば変更できますか?

+0

だから、あなたは、コンポーネントまたは減速のデータにアクセスする必要がありますか?カレンダーコンポーネントには –

+0

が必要ですが、store.insateterのデータにアクセスする必要があります。だから、コンポーネントを再利用すると奇妙に見えます。 – Pangs

答えて

0

完全状態にアクセスできるレデューサーを作成する必要があります。あなたが見たように、combineReducersはあなたを州の単一のスライスに制限します。カスタム減速機を前面に配置して、両方のスライスのデータが必要なアクションを処理し、残りの部分をcombineReducersパーツに含めることができます。 Reduxのドキュメントの

このページでは説明していますhttp://redux.js.org/docs/recipes/reducers/BeyondCombineReducers.html#sharing-data-between-slice-reducers

関連する問題