バックグラウンド
redux と react ルーターを使用して、ユニバーサルな反応アプリケーションを作成しています。サーバー側のレンダリングと基本的な redux アクション (ストアでブール値を変更する) を使用して、ほとんどのアプリケーションをセットアップしました。ここで、アプリのデータを取得するためにいくつかの API 呼び出しを行いたいと思います。
現在の実装
redux-api-middleware を使用することをお勧めしますが、ストアに追加するデータを取得できません。ドキュメントに従って、このようなアクションを作成しました。
example-action.js
import { CALL_API } from `redux-api-middleware`;
export function fn_get_data () {
[CALL_API]: {
endpoint: 'http://www.example.com/api/users',
method: 'GET',
types: ['REQUEST', 'SUCCESS', 'FAILURE']
}
}
このアクションは、ページのボタン クリックで実行されます。アクションが発生するのがわかりますが、ストアには何も入りません。SUCCESS
アクション用のカスタム コードを追加してconsole.log()
、応答できましたが、ストアにデータを取得できませんでした。
また、ドキュメントに記載されているのと同じ方法でミドルウェアをストアに追加しました。
configureStore.js
import { createStore, applyMiddleware, combineReducers } from 'redux';
import { apiMiddleware } from 'redux-api-middleware';
import reducers from './reducers';
const reducer = combineReducers(reducers);
const createStoreWithMiddleware = applyMiddleware(apiMiddleware)(createStore);
export default function configureStore(initialState) {
return createStoreWithMiddleware(reducer, initialState);
}
これまでに試した
payload
これまでのところ、アクションをエクスポート可能なシンボルにしてレデューサーで呼び出し、redux-api-middlewareの属性から得られる現在の状態にデータをマージしようとするなど、アクションでさまざまなことを試しましたが、運がない。
質問
私は本当に2つの質問があります
- ドキュメントにレデューサーがないのはなぜですか?これは見過ごされているだけですか?それとも、応答からのデータがストアに直接送られるだけですか?
- 呼び出したデータがストアに追加されないのはなぜですか (何が足りないのですか)?
この問題に関するヘルプ、説明、または建設的な批判は本当に感謝しています。