【发布时间】:2021-05-08 23:50:05
【问题描述】:
所以我有一个overlay flex 容器,点击它可以为电影添加提名。我如何使它不会出现,因此一旦电影已经被提名就不会提供点击它的选项? click 事件位于 MovieList 容器中,其中 handleNominationsClick 函数从 props 中获取,并将其添加到叠加层的 onClick 属性中。
这是应用程序:
const [nominations, setNominations] = useState([]);
const nominateMovie = (movie) => {
const newNominationList = [...nominations, movie];
setNominations(newNominationList);
};
return (
<div className='container-fluid movie-app'>
<div className='row d-flex align-items-center mt-4 mb-4'>
<MovieListHeading heading='Movies' />
<SearchBox searchValue={searchValue} setSearchValue={setSearchValue} />
</div>
<div className='row'>
<MovieList
movies={movies}
nominationComponent={AddNominations}
handleNominationsClick={nominateMovie}
/>
</div>
<div className='row d-flex align-items-center mt-4 mb-4'>
<MovieListHeading heading='Nominations' />
</div>
电影列表组件:
onst MovieList = (props) => {
const NominationComponent = props.nominationComponent;
return (
<>
{props.movies.map((movie, index) => (
<div className='image-container d-flex justify-content-start m-3 col-3 d-flex flex-column'>
<img src={movie.Poster} alt='movie'></img>
<div
onClick={() => props.handleNominationsClick(movie)}
className='overlay d-flex align-items-center justify-content-center'
>
<NominationComponent />
</div>
</div>
))}
</>
);
};
【问题讨论】:
标签: javascript reactjs event-handling