我正在使用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];
如何获取此特定帖子的用户名?
我想知道在使用该选择器的帖子中获取用户信息的一种好方法。
答案 0 :(得分:1)
也许是这样吗?
export const getPost = (posts, id) => {
const post = posts[id];
post.user = state.entities.users[post.user].name;
return post;
}
答案 1 :(得分:1)
我将创建两个特定的选择器来检索帖子和用户
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)
}