【发布时间】:2023-03-11 00:18:02
【问题描述】:
我在一个 redux-saga 应用程序中提出了 api 请求,但我得到了很长的响应。
我的传奇是这样的:
export function* fetchWeatherByCityNameSaga(action) {
try {
const response = yield call(api.getWeatherByCityName, action.payload.city);
yield put({ type: FETCH_WEATHER_SUCCESS, payload: response });
} catch (err) {
yield put({ type: FETCH_WEATHER_START, payload: err });
}
}
export function* watcherSagas() {
yield all([
yield takeLatest(FETCH_WEATHER_START, fetchWeatherByCityNameSaga),
]);
}
在有效载荷中我有这样的东西:
{…}
city: Object { id: 745042, name: "Istanbul", country: "TR", … }
cnt: 40
cod: "200"
list: Array(40) [ {…}, {…}, {…}, … ]
message: 0
现在我要做的是基于这个响应对象创建一个新对象并将这个新对象放入存储中。我不想存储无用的数据。我应该在哪里做?在 fetchWeatherByCityNameSaga() 中还是在 actionCreators 中还是在组件本身中?
【问题讨论】:
-
I dont want to useless data in store.是什么意思? -
例如列表是 40 项数组。我只需要其中的第一个。从回复中我只需要
city.country和list[0].weather.main -
应该在行动中完成。
fetchWeatherByCityNameSaga
标签: reactjs react-redux redux-saga