Reactjs 无法访问redux对象数组属性

Reactjs 无法访问redux对象数组属性,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我对react/redux相当陌生,我有一个无法理解的意外问题 当我从redux检索到一篇特定的文章时,当我加载正确的页面时,就会触发该操作。我可以在redux开发工具中看到文章在状态下正确加载。文章一切正常 减速器(简化): 行动: export const getTargetArticle = slug => async dispatch => { try { const res = await axios.get("api/article/" + slug);

我对react/redux相当陌生,我有一个无法理解的意外问题

当我从redux检索到一篇特定的文章时,当我加载正确的页面时,就会触发该操作。我可以在redux开发工具中看到文章在
状态下正确加载。文章
一切正常

减速器(简化):

行动:

export const getTargetArticle = slug => async dispatch => {
  try {
    const res = await axios.get("api/article/" + slug);
    dispatch({
      type: GET_TARGET_ARTICLE,
      payload: res.data
    });
  } catch (err) {
    ...
  }
};
以下是article对象应该具备的功能:

article: {
   title:"",
   content: "",
   comments:[],
}


问题:正如我所说,
声明。文章
已正确填充,我可以访问
标题
内容
。但是当我试图访问注释时,我得到一个讨厌的
无法读取null属性“comments”。知道为什么吗?


以下是我如何显示它(如果有帮助):

const Article = ({ getTargetArticle, article: { article, loading }, match }) => {
  useEffect(() => {
    getTargetArticle(match.params.slug);
  }, []);

  let commentsList = article.comments.map((comment, index) => (
    <Fragment>{comment.title}</Fragment>
  ));

  return (
    <Fragment>
      {article && article.title}
      {commentsList}
    </Fragment>
  );
};
const-Article=({gettargerticle,Article:{Article,loading},match})=>{
useffect(()=>{
GetTagerAticle(匹配参数slug);
}, []);
let commentsList=article.comments.map((注释,索引)=>(
{comment.title}
));
返回(
{article&&article.title}
{commentsList}
);
};

非常感谢

在初始渲染时,注释只有空数组,因此您无法对其进行迭代,并且注释中没有标题。因此,comment.title导致了这个问题。要解决此问题,请在使用map之前进行检查:

  let commentsList = article.comments.length && 
    article.comments.map((comment, index) => (
    <Fragment>{comment.title}</Fragment>
  ));
let commentsList=article.comments.length&&
article.comments.map((评论,索引)=>(
{comment.title}
));
您还可以检查标题:

<Fragment>{comment.title && comment.title || ''}</Fragment>
{comment.title&&comment.title | |''''}

非常感谢,就是这样!(只需检查文章是否存在,而不是article.comments.length)
<Fragment>{comment.title && comment.title || ''}</Fragment>