在 redux 选择器中执行检查

Preforming checks in redux selectors

使用 reselect 时,在选择器中预先检查是否正常?

const getComments = state => state.entities.comments;
const getCommentIds = (state, props) => {
  const id = props.match.params.post;
  const comments = state.pagination.comments[id];

  return (comments && !comments.isFetching) ? comments.ids : []; // this line
}

export const getCommentsForPost = createSelector(
  [ getComments, getCommentIds ], (comments, ids) => {
    return ids.map(id => comments[id]);
  }
)

选择器是 public 应用的其余部分访问商店数据的接口。在我看来,通过检查使您的消费应用程序代码更好是好的。

对于上面的特定情况,我可能只是将 isFetching 布尔值也传递给组件,让它处理如何处理它在获取时显示的内容和不获取时显示的内容,但你所拥有的完全是如果它得到您正在寻找的行为,那很好。