Reactjs 在此.props.list.map()期间无法引用子对象

Reactjs 在此.props.list.map()期间无法引用子对象,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我正在映射this.props列表,列表中的每个元素都有一些子对象。但是,如果我尝试引用任何子对象,它们都是未定义的 这是循环 this.props.sparts.map((spart) => { sparts2.push( <div className="ui column wide spart-container" key="{spart.id}"> <div className="fake-img">&l

我正在映射this.props列表,列表中的每个元素都有一些子对象。但是,如果我尝试引用任何子对象,它们都是未定义的

这是循环

this.props.sparts.map((spart) => {
      sparts2.push(
          <div className="ui column wide spart-container" key="{spart.id}">
            <div className="fake-img"></div>
            <div className="audio-container">
              {spart.audio}
            </div>
            <div className="writing-container">
              {spart.name}
            </div>
          </div>
      )
    })
我可以引用任何立即值(比如name),但如果我尝试引用spart.audio.name,它会说无法读取未定义的属性名


为什么我不能引用子对象?

我能想到的一个原因是,并非数组中的每个项都有一个子对象。因此,未定义的是音频,而不是音频的子对象

使用三元运算符修复此问题

{spart.audio ? spart.audio.name : null}

我能想到的一个原因是,并非数组中的每个项都有
音频
子项。因此,未定义的是音频,而不是音频的子对象

使用三元运算符修复此问题

{spart.audio ? spart.audio.name : null}

而且你的钥匙看起来很奇怪。我肯定你不是说
key=“{spart.id}”
你的意思是
key={spart.id}
哦,我的天啊……谢谢。我也有意将这样的数据用于测试。另外,如果
spart.audio
真的是一个对象,你不应该将对象直接注入div。你已经在这里这样做了
{spart.audio}
,我正计划输入一个对象值,而不是整个对象:)哈哈,是的,对不起,我只是太仔细了。而且你的钥匙看起来很奇怪。我肯定你不是说
key=“{spart.id}”
你的意思是
key={spart.id}
哦,我的天啊……谢谢。我也有意将这样的数据用于测试。另外,如果
spart.audio
真的是一个对象,你不应该将对象直接注入div。你已经在这里这样做了
{spart.audio}
,我正计划输入一个对象值,而不是整个对象:)哈哈,是的,对不起,我只是一丝不苟。