【发布时间】:2020-03-25 04:33:52
【问题描述】:
我有一个 API 调用,它返回两个对象:data 和 pageOutput。
{
data: "[{"title":["Travis Jackson HOF 1931 W517 # 12 - SGC 50"],"image":["https://i.ebayimg.com/00/s/MTYwMFg5NzY=/z/uU8AAOSwMtdd3ZXo/$_1.JPG"],"itemURL":["https://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=2&toolid=10044&campid=5338164673&customid=vintagebaseball&lgeo=1&vectorid=229466&item=133253226463"]"
pageOutput: "{"pageNumber":["1"],"entriesPerPage":["100"],"totalPages":["2"],"totalEntries":["194"]}"
}
我有一个 reducer,它从我的 API 中获取数据并将数据存储在一个称为“棒球”的状态中,就像这样。请注意,它只是存储我的 API 调用中的“数据”部分。
const baseballReducer = (state = [], action) => {
switch (action.type) {
case "INIT_BLOGS":
return action.data;
export const initializeBaseball = () => {
return async dispatch => {
const baseballCards = await baseballService.getAll();
dispatch({
type: "INIT_BLOGS",
data: JSON.parse(baseballCards.data)
});
};
};
我需要将 pageOutput 设置为单独的状态。现在我知道我可以创建一个单独的 page reducer,调用 api 并将 pageOutput 数据存储在新状态。但是,我认为对 API 进行两次不同的调用是不好的做法?
有没有更好的方法?我正在考虑将所有数据(包括 pageOutput)存储在棒球状态,但是我不确定这是否是最佳实践,特别是考虑到我有一个需要更新的活动页面的分页控件重新查询数据库。希望这足够清楚——很高兴提供任何额外的代码。
【问题讨论】:
标签: javascript reactjs api react-redux