2つのクラス成分と、両方の成分で使用される単一のレデューサーをmapStateToProps
と書きました。複数の成分用の単一レデューサーの作成
コンポーネント減速DEF:DEF
import notify from '../global/reducers/notifyReducer';
const compAReducer = combineReducers({
notify
});
export default compAReducer;
コンポーネントBの減速:
import notify from '../global/reducers/notifyReducer';
const compBReducer = combineReducers({
notify
});
export default compBReducer;
が減速は次のようになります。
import * as types from '../../../actions/actionTypes';
export default function notifyReducer(state = {}, action) {
switch (action.type) {
case types.NOTIFY_SUCCESS:
case types.NOTIFY_FAILURE:
return action.notify;
case types.NOTIFY_NULL:
return {};
default:
return state;
}
}
問題は、そのときcompnentのAディスパッチですアクション、それはコンポーネントB、副詞の状態に影響します。
これは私が探している動作ではありません。私は、コンポーネントが同じロジックを使用するが、別の "状態プロパティ"を保持することを望む。 異なる「通知」インスタンス。
還元剤を複製することはできますか?
ありがとうございます。私はまだReact-Reduxを学んでいます。
回答ありがとうございますが、実際には動作しません。両方のコンポーネントで更新が進行中であることを示しています(アクションをディスパッチした後も同じIDを保持しています)。 また、メッセージの表示のための単純な文字列であることを通知する前に、IDをキーとし、値として文字列を持つオブジェクトです。宣言的ではなく、かなり奇妙です。 私はそれについてもっと読むでしょう。ありがとう – Chen
ちょっとだけデータが複雑であるということは、もはや宣言的ではないという意味ではありません。あなたが望むほどシンプルではないかもしれませんが、idを持つオブジェクトにデータをラップすることはまったく奇妙ではありません。 –
このアプローチには、多くのメリットがあります。しかし、私は国家をシンプルなままにしておきたいと思っていました。私は、国家の鏡としての見方をしようとしています。 notifyのメッセージは単に文字列でなければなりません。 実際に私はカスタマイズされた高次を使って解決しました。reduce: http://redux.js.org/docs/recipes/reducers/ReusingReducerLogic.html これで、追加の識別子を追加することなく、状態の特定の領域をターゲットにすることができますそれ(実際の店舗レベルで) – Chen