我正在研究喜欢和不喜欢比率按钮,例如 youtube Concept(唯一投票),我想单击该按钮并将喜欢的值增加 1,将不喜欢的值减少 -1。但是当我点击我的按钮时,增量或减量会继续。
我将与您分享我的代码:
const SingleMovieCard = ({singleMovie : {id, title,image ,category, likes, dislikes}, removeMovie}) => {
const [isLike, setIsLike] = useState(likes);
const [isDislike, setIsDislike] = useState(dislikes);
const likeMovie = () => setIsLike(isLike + 1);
const dislikeMovie = () => setIsDislike(isDislike - 1) ;
return (
<section key={id} className="single-movie">
<img src={image} alt={title}/>
<footer>
<div className="movie-info">
<h2 className="title">{title}</h2>
<h4 className="category">{category}</h4>
</div>
<div className="ratio-section">
<div>
<i onClick={likeMovie} class="far fa-thumbs-up"></i>
<h5>{isLike}</h5>
</div>
<div>
<i onClick={dislikeMovie} class="far fa-thumbs-down"></i>
<h5>{isDislike}</h5>
</div>
</div>
<button className="btn" onClick={()=> removeMovie(id)}>Delete </button>
</footer>
</section>
)
}
export default SingleMovieCard;
此组件的父元素:
import React from 'react';
import SingleMovieCard from '../SingleMovieCard/SingleMovieCard';
const MoviesCards = ({moviesList, removeMovie}) => {
return (
<section>
<div className="grid-list">
{moviesList.map((singleMovie)=> {
return(
<SingleMovieCard singleMovie={singleMovie}
key={singleMovie.id}
removeMovie={removeMovie} />
)
})}
</div>
</section>
)
}
export default MoviesCards;
这是数据:
export default [
{
id: '1',
title: 'Oceans 8',
image: 'https://i.ibb.co/8mt68ZB/wp3051367-oceans-8-wallpapers.jpg',
category: 'Comedy',
likes: 4,
dislikes: 1
},
{
id: '2',
title: 'Midnight Sun',
image:' https://i.ibb.co/sCZSNnv/3524235.jpg',
category: 'Comedy',
likes: 2,
dislikes: 0
}, {
id: '3',
title: 'Les indestructibles 2',
image: 'https://i.ibb.co/M2d5Fnp/923701.jpg',
category: 'Animation',
likes: 3,
dislikes: 1
},
]