Javascript 返回未定义的JSON对象,即使它存在(NASA API和React)
当我引用item.links时,它说它未定义,但它就在那里!!(我从NASA API获取数据) 图片: 如您所见,有links属性。我不明白为什么会这样。控制台错误:Javascript 返回未定义的JSON对象,即使它存在(NASA API和React),javascript,json,reactjs,Javascript,Json,Reactjs,当我引用item.links时,它说它未定义,但它就在那里!!(我从NASA API获取数据) 图片: 如您所见,有links属性。我不明白为什么会这样。控制台错误: {this.imageRenderer(item.data[0].media_type, item.links[1], item.links[0])} 出于某种奇怪的原因,当我键入关键字“Sun”时,同样的API调用也会起作用: 如果您想查看整个网站,请访问: 如果你输入'Hi'假设,它应该会显示多个结果,就像我输入'Su
{this.imageRenderer(item.data[0].media_type, item.links[1], item.links[0])}
出于某种奇怪的原因,当我键入关键字“Sun”时,同样的API调用也会起作用:
如果您想查看整个网站,请访问:
如果你输入'Hi'假设,它应该会显示多个结果,就像我输入'Sun'时一样(你也可以试试这个)。但是图像属性(item.links)变得未定义,如上图所示
不要忘记检查下面的imageRenderer函数。这确实有助于解释很多事情
存在item.links的图像:
更奇怪的是,当我注释掉item.links属性时,data属性填充了“cards”
更新:
当我键入“Hi”时,我运行了一个console.log来查找链接,它会获取用于显示图像的链接。唯一的问题是,即使它获得了链接,它仍然返回未定义的
图片:
用于此的函数。imageRenderer
TypeError: "item.links is undefined"
render AstronomyContainer.js:127 render AstronomyContainer.js:119 finishClassComponent13React
handleSubmit AstronomyContainer.js:28
failed to fetch data AstronomyContainer.js:40
TypeError: item.links is undefined[Learn More] AstronomyContainer.js:127
imageRenderer(填充、填充1、填充2){
开关(东西){
案例(“视频”):
返回(
)
大小写('image'):
返回(
//
)
违约:
返回()
}
}
我已经查看了
我认为问题出在这方面
imageRenderer(stuff, stuff1, stuff2) {
switch(stuff) {
case('video'):
return (
<iframe
allowFullScreen
frameBorder="0"
height="520"
width="720"
src={stuff1.href}>
</iframe>
)
case('image'):
return (
// <a href={hdurl} className="astronomy-image-wrapper">
// <img src={url} alt={title} />
// </a>
<a className="astronomy-image-wrapper">
<img src={stuff2.href}/>
</a>
)
default:
return(<a className="astronomy-image-wrapper">
{/* <img src={stuff1.href} /> */}
</a>)
}
}
您正在尝试获取索引0和1处的链接
现在,当我检查链接的JSON时,并不是所有项目都有2个链接。因此,如果您尝试链接[1]
下面是一个在控制台中打印链接长度的程序,我已经完成了的JSON输出 我认为问题出在这方面
imageRenderer(stuff, stuff1, stuff2) {
switch(stuff) {
case('video'):
return (
<iframe
allowFullScreen
frameBorder="0"
height="520"
width="720"
src={stuff1.href}>
</iframe>
)
case('image'):
return (
// <a href={hdurl} className="astronomy-image-wrapper">
// <img src={url} alt={title} />
// </a>
<a className="astronomy-image-wrapper">
<img src={stuff2.href}/>
</a>
)
default:
return(<a className="astronomy-image-wrapper">
{/* <img src={stuff1.href} /> */}
</a>)
}
}
您正在尝试获取索引0和1处的链接
现在,当我检查链接的JSON时,并不是所有项目都有2个链接。因此,如果您尝试链接[1]
下面是一个在控制台中打印链接长度的