正在尝试使用数据库中的新数据更新redux状态state

g6ll5ycj  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(93)

我有一个从数据库中获取前10个最近帖子的查询(标识、帖子标题dateCreated等)并调用reducer来更新groupsPosts状态。我有另一个查询,它获取旧的10个帖子并调用reducer来更新groupsPostsMore状态,该状态存储检索到的旧的10个帖子。groupPostsMoreButton更简单地存储true或false,如果它们是要加载的最多帖子。所有这些都工作得很好。
我正在使用Map功能输出组帖子
第一个
我的问题是我无法将旧的10个帖子添加到当前的groupPosts状态中。我已经尝试将其连接到groupPosts groupsPosts: state.groupPosts.concat(action.groupPostsMore),,但它在前端的状态上没有更新。
这是我的还原剂

import { GET_GROUP_POSTS, GET_GROUP_POSTS_MORE, GET_GROUP_POSTS_MORE_BUTTON } from "../constants";

const initialState = {

    groupPosts: [],
    groupPostsMore: [],
    groupPostsMoreButton: null,
    loaded: false
}

export const groups = (state = initialState, action) => {

    switch (action.type) {        
        case GET_GROUP_POSTS:
            return { 
                ...state, 
                groupPosts: action.groupPosts,
                loaded: action.loaded
            }
        case GET_GROUP_POSTS_MORE_BUTTON:
            return {
                ...state,
                groupPostsMoreButton: action.groupPostsMoreButton,
                loaded: action.loaded
            }
        case GET_GROUP_POSTS_MORE:
            return { 
                ...state,  
                groupPostsMore: action.groupPostsMore,                  
                groupsPosts: state.groupPosts.concat(action.groupPostsMore),                                  
                loaded: action.loaded
            }
        default:
            return state
    }

}
xqk2d5yq

xqk2d5yq1#

你可以试试@reduxjs/toolkit。它有一个更清晰的Redux代码语法。看起来你的代码不工作是因为这个打字错误:groupsPosts,应该是groupPosts吧?

r55awzrz

r55awzrz2#

嘿,如果下面没有帮助,

groupsPosts: [...state.groupPosts,...action.groupPostsMore]

然后,你需要确保检查的行动。groupPostsMore,什么是被记录在那里。
希望对你有帮助,尽管怀疑吧

相关问题