Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从阵列访问信息时,React JS返回undefined_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 尝试从阵列访问信息时,React JS返回undefined

Javascript 尝试从阵列访问信息时,React JS返回undefined,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我的信息存储在一个json文件中,可以通过axios调用和mock.js访问该文件,我可以访问我的信息。 以下是数据: information: { name: 'Company name', aboutParagraphs: [ ["X"], ["Y"], ["Z"], ["XX"]

我的信息存储在一个json文件中,可以通过axios调用和mock.js访问该文件,我可以访问我的信息。 以下是数据:

information: { 
        name: 'Company name', 
        aboutParagraphs: [
           ["X"],
          ["Y"],
           ["Z"],
         ["XX"]
        ],
当我尝试访问整个数组时,它将返回所有项。 但是,当我尝试访问单个数组时,比如说
information.aboutParagraphs[0]
,React返回一个错误
TypeError:无法读取未定义的
的属性“0”

代码如下:

<div className="col-lg-6">
<div className="mi-about-content">
    <h3>
      {information.name}
    </h3>
    <p>
  {information.aboutParagraphs[0]}
   </p>
</div>
</div>

{information.name}

{information.aboutParagraphs[0]}

我试着检查其他解决方案,但它们似乎都有语法问题,或者使用了错误的括号,而这里的情况并非如此——据我所知。 我错过了什么?这是一个语法问题吗?提前感谢。

试试这个:

{information && information.aboutParagraphs && information.aboutParagraphs[0]}
如果没有看到您的获取,我不确定,但是当您尝试呈现一些异步获取但尚未完成的数据时,通常会出现这些问题

我意识到这有点过分,但这会告诉你这是否是一个异步问题。如果它甚至在提取完成之前的一瞬间尝试呈现,它将是未定义的


上面这一行所做的是在它尝试呈现信息之前检查所有3个项目是否都存在。aboutParagraphs[0]

您确定您收到的数据格式与您引用的一样吗?您是如何记录此对象的?首先,尝试替换为:
{information?.aboutParagraphs[0]}
,以防止显示未定义信息的属性。关于这个问题,我的一个猜测是,这个对象首先收到的不是数组,这导致了一个错误,然后在对象中插入了正确的格式,因此您在日志记录中看到了良好的结果。您可以通过执行以下操作来检查:
{information&&array.isArray(information.aboutparaphs)?information.aboutParagraphs[0][0]:“存在问题”}
这可能是在提取完成之前呈现的问题,或者数据结构不是您认为的那样。我认为它在记录数组时呈现信息没有问题,并且知道类型是数组。我在另一个应用程序中也做了类似的事情,效果很好,所以我真的不确定这是一个bug还是一个异步问题。我无法重现这个问题。正如Alex所建议的,您几乎肯定是在axios调用完成之前渲染数据。别忘了,将对象记录到控制台(至少在chrome中)会为您提供对象的实时视图,而不是调用console.log时对象的快照。添加上面的行会按预期返回数据,谢谢!很高兴它起作用了。在获取和渲染时经常发生这种情况。在呈现数据之前,最好先进行一些这样的检查,以确保数据确实存在。