Javascript 我试图映射从TMDB API加载的数组
我使用从TMDB API获取的数据上传了数据,当我试图通过它进行映射时,它会给我一个错误,未定义的不是对象(正在评估'NowMovies.map') 这是我的代码:Javascript 我试图映射从TMDB API加载的数组,javascript,reactjs,fetch,Javascript,Reactjs,Fetch,我使用从TMDB API获取的数据上传了数据,当我试图通过它进行映射时,它会给我一个错误,未定义的不是对象(正在评估'NowMovies.map') 这是我的代码: constructor(props){ super(props); this.state={ NowMovies:[], isLoaded:false } } componentDidMount(){ fetch('API') .then(da
constructor(props){
super(props);
this.state={
NowMovies:[],
isLoaded:false
}
}
componentDidMount(){
fetch('API')
.then(data => data.json())
.then(({MoviesLists}) => {this.setState({
isLoaded:true,
NowMovies:MoviesLists
})
})
}
render(){
var {isLoaded,NowMovies} = this.state
if (!isLoaded){
return <div> .... Loading</div>
}
else{
return(
<div>
<ul>
{NowMovies.map(Movie=>(<li key={NowMovies.id}> name:{NowMovies.original_title}</li>
))}
</ul>
</div>
建造师(道具){
超级(道具);
这个州={
NowMovies:[],
isLoaded:false
}
}
componentDidMount(){
获取('API')
.then(data=>data.json())
.then({MoviesLists})=>{this.setState({
isLoaded:是的,
NowMovies:电影列表
})
})
}
render(){
var{isLoaded,NowMovies}=this.state
如果(!已加载){
返回…加载
}
否则{
返回(
{NowMovies.map(Movie=>(- 名称:{NowMovies.original_title}
))}
有人能帮我把这些数据加载到我的数组中并通过它映射吗???如果你试图在映射函数中访问
nowmooks
,你应该使用你传递的Movie
对象
{NowMovies.map(Movie=>(
名称:{Movie.original_title}
}
不能直接赋值,因此可以使用.concat()或.push()。
并使用.map()进行更正
构造函数(道具){
超级(道具);
这个州={
NowMovies:[],
isLoaded:false
}
}
componentDidMount(){
获取(API)
.then((data)=>data.json())
.然后({MoviesLists})=>{
让movieList=this.state.NowMovies.concat(MoviesLists);
这是我的国家({
isLoaded:是的,
NowMovies:电影人
})
})
}
render(){
var{isLoaded,NowMovies}=this.state
如果(!已加载){
返回…加载
}
否则{
返回(
{NowMovies.map(Movie=>(- 名称:{Movie.original_title}
))}
请修复格式:响应中没有MoviesLists
属性。@Andreas我会为格式混乱感到抱歉,我将data=>data.json更改为MoviesLists.json错误现已结束,但数组中没有加载数据。您有什么建议,谢谢you@Hazem哪个是你的API?@ForamTrada tmdb谢谢你,我修复了这一问题,但在加载NowMovies数组中的数据时仍然会出现问题,因为它仍然显示我…加载`componentDidMount(){fetch(')。然后(数据=>MoviesList.json())。然后({MoviesList})=>{this.setState({isLoaded:true,NowMovies:MoviesList})}试试这个。。然后(数据=>data.json())。然后(({results})=>{this.setState({isLoaded:true,NowMovies:results})}
constructor(props){
super(props);
this.state={
NowMovies:[],
isLoaded:false
}
}
componentDidMount(){
fetch(API)
.then((data) => data.json())
.then(({MoviesLists}) => {
let movieList = this.state.NowMovies.concat(MoviesLists);
this.setState({
isLoaded:true,
NowMovies : movieList
})
})
}
render(){
var {isLoaded,NowMovies} = this.state
if (!isLoaded){
return <div> .... Loading</div>
}
else{
return(
<div>
<ul>
{NowMovies.map(Movie=>(<li key={Movie.id}> name:{Movie.original_title}</li>
))}
</ul>
</div>