Updated
I am learning react so using omdbapi api want to fetch data but getting TypeError: Cannot read property 'map' of undefined
Kindly help how to solve this issue
class App extends React.Component {
constructor(){
super()
this.state={
data:[],
}
}
componentDidMount(){
fetch('http://www.omdbapi.com/?i=tt3896198&apikey=key123')
.then((Response)=>Response.json())
.then((findresponse)=>
{
this.setState({
data:findresponse.movie
})
})
}
render() {
return (
<div>
{this.state.data.map((dynamicData)=>
<div>
<img src={dynamicData.Poster} alt=""/>
<p>{dynamicData.title} </p>
<p>{dynamicData.Released} </p>
</div>
)}
</div>
)
}
}
After below answer i have updated the source code now in html output is blank but in console.log showing the output
I want to loop 20 movies
componentDidMount(){
fetch('http://www.omdbapi.com/?apikey=mykey&s=batman')
.then((Response)=>Response.json())
.then((findresponse)=>
{
console.log(findresponse)
this.setState({
data:[findresponse]
})
})
}
render() {
return (
<div>
{this.state.data && this.state.data.map((dynamicData , key)=>
<div key={key}>
<img src={dynamicData.Poster} alt=""/>
<p>{dynamicData.Title} </p>
<p>{dynamicData.Released} </p>
</div>
)}
</div>
)
}
}
findresponse.movielook like?findresponse.movieto ensure it's an array that can be mapped. Also, remember to give each mapped element a unique react key.