私が通常持っているのは、すべてのフェッチ要求を処理するミドルウェアです。そこでは、応答をインターセプトし、ハンプを使用してキーをcamelCaseに変換できます。
// fetchMiddleware.js
export default ({ dispatch, getState }) => next => (action) => {
if (typeof action === 'function') {
return action(dispatch, getState);
}
const { promise, types, ...rest } = action;
// this middleware expects a promise object in the action,
// the object contains all configurations to send the request to
// the server, if no promise is defined then it just ignores this action
if (!promise) {
return next(action);
}
return fetch(promise.url, promise)
.then(response => Promise.resolve(humps.camelizeKeys(response)))
.then(data => dispatch({ type: types[1], data }))
.catch(error => dispatch({ type: types[2], error }));
}
は、その後どこか他のいくつかのコンポーネントまたはで、アクションは次のように派遣されます。
store.dispatch({
types: ['BEFORE_REQUEST', 'REQUEST_SUCCESS', 'REQUEST_FAIL'],
promise: {
url: 'some/api.json',
params: { x, y },
},
});
私は通常のフェッチを処理するためのユーティリティを持っているが、これはあなたにどのように上のアイデアを与えるだろうキャメルケース変換を扱う。
サーバーレスポンスを処理する方法によって異なりますが、一般的な方法はミドルウェアと[humps](https://www.npmjs.com/package/humps)のようなものを使用することです。 –