Javascript 使用选择器获取相关项
我使用React和Redux来获取帖子,每个帖子都有一个用户。我的标准化数据如下Javascript 使用选择器获取相关项,javascript,reactjs,redux,Javascript,Reactjs,Redux,我使用React和Redux来获取帖子,每个帖子都有一个用户。我的标准化数据如下 { entities: { posts: { 4: { name: 'Post 4', user: 5 } } users: { 5: {name: 'User 5'} } }, post: {
{
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];
如何获取此特定帖子的用户名?
我想知道对于那篇文章,使用选择器获取用户信息的好方法是什么。可能是这样的吗
export const getPost = (posts, id) => {
const post = posts[id];
post.user = state.entities.users[post.user].name;
return post;
}
也许是这样的
export const getPost = (posts, id) => {
const post = posts[id];
post.user = state.entities.users[post.user].name;
return post;
}
我将创建两个特定的选择器来检索帖子和用户
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)
}
我将创建两个特定的选择器来检索帖子和用户
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)
}
不知道你在问什么。您需要获取
getPath
的输出,并使用它在本例中检索id为5的用户?对不起,输入错误!应该是邮寄的。感谢您的通知。是否有getPost功能或您希望我们提供此功能?我没有完全理解你。我添加了getPost选择器函数,我想知道如何获取特定PostEdit的用户名。打字错误:)不知道你在问什么。您需要获取getPath
的输出,并使用它在本例中检索id为5的用户?对不起,输入错误!应该是邮寄的。感谢您的通知。是否有getPost功能或您希望我们提供此功能?我没有完全理解你。我添加了getPost选择器函数,我想知道如何获取特定PostEdit的用户名。打字:)啊哈,这是一个很好的计划,在我的帖子选择器中预装数据,我甚至没想到!谢谢。啊哈,这是一个很好的计划,在我的帖子选择器中预加载数据,我甚至没有想到这一点!谢谢。这很困难,因为我总是将状态片传递给选择器,例如getPost(state.posts)、getUser(state.users),因为我读到选择器获取状态并从中返回项目。考虑到每次都必须传递状态,我想不可能使用上述方法?您可以将state.entities
传递给getpostaser
。编辑答案以匹配所需的API这很困难,因为我总是将状态片传递给选择器,例如getPost(state.posts)、getUser(state.users),因为我读到选择器获取状态并从中返回项目。考虑到每次都必须传递状态,我想不可能使用上述方法?您可以将state.entities
传递给getpostaser
。编辑答案以匹配所需的api