[英]Accessing array inside of Object
I have a functional component that renders out the object values 我有一个呈现对象值的功能组件
const MovieItemDetails = (props) => {
return <div className='item-details'>
<div>
<img key={props.movieDetails.id} src={`https://image.tmdb.org/t/p/w1280${props.movieDetails.backdrop_path}`} alt={props.movieDetails.title} className='header-item-image' />
<a href='#t' className='header-item-name'>{props.movieDetails.title}</a>
<img src={`https://image.tmdb.org/t/p/w185/${props.movieDetails.poster_path}`} alt={props.movieDetails.title} className='header-item-poster' />
<h2>{props.movieDetails.genres[0].name}</h2>
</div>
</div>
}
I'm trying to access the nested array as seen in the image below 我正在尝试访问嵌套数组,如下图所示
What I want is the genre name of the first array, I have tried { props.movieDetails.genres[0].name}
我想要的是第一个数组的类型名称,我已经尝试过{ props.movieDetails.genres[0].name}
but I get 'TypeError: Cannot read property '0' of undefined' 但我收到“ TypeError:无法读取未定义的属性” 0”
Instead of referring the nested array time and again, better to extract it in const at the start and check for its value before rendering. 与其一次又一次地引用嵌套数组,不如在开始时将其提取为const并在渲染之前检查其值。 Please see below: 请看下面:
const MovieItemDetails = (props) => {
const {movieDetails} = {...props};
return (movieDetails && movieDetails.genres ? <div className='item-details'>
<div>
<img key={movieDetails.id} src={`https://image.tmdb.org/t/p/w1280${movieDetails.backdrop_path}`} alt={movieDetails.title} className='header-item-image' />
<a href='#t' className='header-item-name'>{movieDetails.title}</a>
<img src={`https://image.tmdb.org/t/p/w185/${movieDetails.poster_path}`} alt={movieDetails.title} className='header-item-poster' />
<h2>{movieDetails.genres[0].name}</h2>
</div>
</div> : null);
}
I would rather suggest to call it in right way. 我宁愿建议以正确的方式称呼它。 Please have a look at the following code. 请看下面的代码。
import React from 'react'
import Header from './Header'
import Main from './Main'
const MovieItemDetails = (props) => {
return <div className='item-details'>
<div>
<img key={props.movieDetails.id} src= {`https://image.tmdb.org/t/p/w1280${props.movieDetails.backdrop_path}`} alt= {props.movieDetails.title} className='header-item-image' />
<a href='#t' className='header-item-name'>{props.movieDetails.title}</a>
<img src={`https://image.tmdb.org/t/p/w185/${props.movieDetails.poster_path}`} alt={props.movieDetails.title} className='header-item-poster' />
<h2>{props.movieDetails.genres[0].name}</h2>
</div>
</div>
}
const movieDetails = {
id: 1,
title: 'Movie',
genres : [
{id: 0, name : 'Songs'}
]
}
const App = () => (
<div>
<MovieItemDetails movieDetails={movieDetails} />
{MovieItemDetails({movieDetails})}
</div>
)
export default App 导出默认应用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.