【发布时间】:2021-07-17 07:47:27
【问题描述】:
import React, {useState, useEffect} from 'react';
import './Row.css';
import YouTube from 'react-youtube';
import movieTrailer from 'movie-trailer';
function Row(props){
const imgBaseURL = 'http://image.tmdb.org/t/p/original/';
const fetchBaseURL = 'https://api.themoviedb.org/3';
const [movies, setMovies] = useState([]);
const [videoURL, setVideoURL] = useState('');
useEffect(async () => {
const response = await fetch(`${fetchBaseURL}${props.fetchURL}`);
const data = await response.json();
setMovies(data.results);
return data;
}, [props.fetchURL]);
const handleClick = (movie) => {
console.log(movie);
};
return (
<div>
<h3 className="movie-header">{props.title}</h3>
<div className="row_posters">
{movies.map((movie) => {
return (
<img
onClick={() => handleClick(movie)}
key={movie.id}
className="row_poster"
src={`${imgBaseURL}${props.isLargeRow? movie.poster_path: movie.backdrop_path}`}
/>
)
})
}
</div>
</div>
);
}
export default Row;
这是我在构建 netflix-clone 应用程序时创建的一个组件。我想点击一张电影海报,我想抓取那部电影的 json 对象。因此我使用了onClick 属性并将{() => handleClick(movie)} 这个代码和平。它实际上传递了我单击的电影对象。但我无法弄清楚它是如何发生的。当我点击海报时,它会再次执行地图功能吗?或者它是如何识别那部电影的?
【问题讨论】:
标签: javascript reactjs onclick components