【发布时间】:2023-03-10 21:21:01
【问题描述】:
我有一个 React 组件,它在挂载时检索联赛列表,我想将每个联赛作为数组存储在 redux 存储中。
现在,我可以这样做,但结构如下:
联赛 ->
[0]->
[0] -> 联赛_0 [1] -> 联赛_1 等等
也就是说,检索到的联赛数组完全作为嵌套数组存储在 redux 存储中联赛数组的第一个元素中。
我该如何构建这个结构,这样联赛就不会全部嵌套在第一个元素中?这意味着结构将是:
联赛 ->
[0] -> 联赛_1
[1] -> 联赛_2
等等
这是我的行动:
function setUserLeagues(leagues) {
return {
type: SET_USER_LEAGUES,
leagues
}
}
这是我的减速器:
const initialState = {
leagues: []
};
export default (state = initialState, action = {}) => {
switch(action.type) {
case SET_USER_LEAGUES:
return [
action.leagues
]
default: return state;
}
}
谢谢!
【问题讨论】:
-
如何在服务器端格式化这些数据...?
-
如果您一次添加多个项目,则必须获取现有状态的副本并添加到其中...
-
它使用来自 Ruby on Rails 的 Active Model Serializer 渲染 - 它返回一个包含 N 个联赛的 JSON 对象,渲染为标准 JSON 列表。没错,这很好,尽管在这种特定情况下,我实际上只是覆盖了以前存在的任何内容
-
所以联赛已经在一个名为联赛的对象数组中,这是您设置的状态,您需要在减速器中访问此对象并仅返回对象,而不返回父数组。 ..您能否记录记录器向您显示的 SET_USER_LEAGUES 成功但访问该数组而不是在收到时添加它
-
其实我想我明白了:我只是在 reducer 中做 return state = action.leagues
标签: arrays reactjs redux reducers