javascript - 使用选择器获取相关项目

标签 javascript reactjs redux

我使用 React 和 Redux 来获取帖子,每个帖子都有一个用户。我的标准化数据如下

{
    entities: {
        posts: {
            4: {
                name: 'Post 4',
                user: 5
            }
        }
        users: {
            5: {name: 'User 5'}
        }
    },
    post: {
        id: 4
    }
}

我正在使用选择器来获取当前帖子

post: getPost(state.entities.posts, 4)


export const getPost = (posts, id) => posts[id];

如何获取此特定帖子的用户名?

我想知道使用选择器获取该帖子的用户信息的好方法是什么。

最佳答案

我将创建两个特定的选择器来检索帖子和用户

const getPost = (posts, postId) => posts[postId]
const getUser = (users, userId) => users[userId]

然后是结合两者的“复杂”选择器

const getPostUser = (state, postId) => {
    const userId = getPost(state.posts, postId).user
    return getUser(state.users, userId)
}

关于javascript - 使用选择器获取相关项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775093/

相关文章:

javascript - 如何记录 JavaScript 对象(从 UML Angular )

javascript - 从内联 html 页面访问外部 JS 变量?

html - 非常奇怪的 CSS 格式与 React 应用程序,主要重叠。我该如何解决?

javascript - useEffect 仅运行一次,刷新后不会再次获取

reactjs - 包装在 redux 容器中的组件的大量实例会对性能产生负面影响吗?

javascript - 根据用户输入信息更新 H2 标签

javascript - 如何使用 html 和/或 javascript 强制下载?

javascript - REACT - 如果特定输入字段为空,我该如何发出警告?

javascript - React + redux + axios + thunk,等待interceptors.response刷新token

reactjs - Redux 可以只管理一个 bool 值吗?