Hi experts,
I have been learning react since a week now and I have come across an issue where I want to pass the value to useState and then use that value as default value for my rating component.
Please see the code below :
const Produts = () =>{
const classes = useStyles();
const [movieData, setMovieData] = useState([
//the below is an fake api data which needs to be deleted when final disgn is ready and add real api from useEffect
{
"adult": false,
"backdrop_path": "/7RyHsO4yDXtBv1zUU3mTpHeQ0d5.jpg",
"genre_ids": [
12,
878,
28
],
"id": 299534,
"original_language": "en",
"original_title": "Avengers: Endgame",
"overview": "After the devastating events of Avengers: Infinity War, the universe is in ruins due to the efforts of the Mad Titan, Thanos. With the help of remaining allies, the Avengers must assemble once more in order to undo Thanos' actions and restore order to the universe once and for all, no matter what consequences may be in store.",
"popularity": 326.894,
"poster_path": "/or06FN3Dka5tukK1e9sl16pB3iy.jpg",
"release_date": "2019-04-24",
"title": "Avengers: Endgame",
"video": false,
"vote_average": 8.3,
"vote_count": 18957
},
]);
//here I am trying to pass the vote_average value to useState as its initial value.
const ratings = (movieData.vote_average);
const [ratingValue, setRatingValue] = useState(ratings );
//finally am returning it using map function in rating component below
return (
<>
<div className={classes.main}>
{movieData.map((movie) =>{
return(
<Card className={classes.cardMain} key={movie.id}>
<CardActionArea>
<CardMedia className = {classes.cardImage}>
<img style = {{width: '100%', height: '100%', objectFit: 'cover'}}
src ={`https://image.tmdb.org/t/p/original${movie.poster_path}`}
alt = "movie poster"/>
</CardMedia>
<CardContent className = {classes.cardContent}>
<Typography> {movie.original_title} </Typography>
<Typography
className = {classes.typography1}
variant="body2"
component = "p"
> {movie.release_date}
</Typography>
<Rating
className = {classes.typography2}
name = "ratings"
value = {ratingValue}
*//here am trying to render/return that vote_average value and then change when user clicks or selects*
onChange = {(event, newRating) => {
setRatingValue(newRating);
}}
/>
</CardContent>
</CardActionArea>
<CardActions >
<Button className = {classes.cardButton} >Watch</Button>
<Button className = {classes.cardButton}>Like</Button>
<Button className = {classes.cardButton}>Rent</Button>
</CardActions>
</Card>
);
})}
</div>
</>
)
};
export default Produts;
can anyone please let me know what can I do and how ??
Thanks a million in advance.
@DanCouper any help sir ?