通常、Redux(サンク)では、アクションクリエータは静的メソッドです。しかし、私は、アクション作成者が異なるエンドポイントに非同期呼び出しを行う必要がある特定のシナリオを持っています。これを行う方法の1つは、に行くためにどのエンドポイントを決定するためのフラグを渡すために、次のようになります。アクション作成者をアクションメソッドを持つクラスにすることができます
function _getEndPoint(isHouse) {
return isHouse ? 'house' : 'flat';
}
export function post(model, isHouse = false) {
return (dispatch, getState) => {
dispatch({
types: [POST, POST_SUCCESS, POST_FAILED],
promise: (client) => client.post(`${_getEndPoint(isHouse)}`, {
data: model,
}),
});
};
}
しかし、クラスを作成する方法があるが、アクションメソッドとして機能し、パブリックメソッドとしてpost
とProperty
を言います。したがって、Property
クラスをインスタンス化するとき、プロパティのタイプを定義し、作成時に正しいエンドポイントを設定しますか?
C#の背景から、この問題を解決するためにGenericsや継承のようなものを使用できるかどうかも疑問でした。
また、これは、Reduxがプログラミングの機能スタイルのほうにあることを読んで、クラスを使ってアクション・メソッドを作成しようとするのがよい方法です。