在 React UI 中使用规范化的 Redux 状态之前,你应该去规范化它吗?

Should you denormalize normalized Redux state before using it in React UI?

我最近开始使用 Normalizr 库来规范化 API 对 Redux 状态的响应,但仍有一些部分让我感到困惑。

当使用规范化的 Redux 状态进行 UI 渲染时,将其传递给组件需要额外的 id 道具,而仅仅定义道具会变得更加复杂

           {postIds.map((postId) => (
            <Post
              postText={entities.posts[postId].body} 
              commentIds={entities.posts[postId].comments}
              postComments={entities.comments}
              postAuthor={
                entities.users[entities.posts[postId].author.username]
              }
            />
          ))}

在 React 中使用数据之前是否应该对数据进行反规范化 UI?
或者这是一个正常的模式?如果是这样,有什么办法可以简化它吗?

是的,当使用归一化状态时,你通常会 only pass an item ID to the child component, and let it look up its own data using that ID prop:

const TodoListItem = ({ id }) => {
  // Call our `selectTodoById` with the state _and_ the ID value
  const todo = useSelector(state => selectTodoById(state, id))
  const { text, completed, color } = todo

}

我还建议通读: