我正在尝试为数组中的每个元素实现一个计数器并将它们显示在屏幕上。我有一个数组,我想为每个元素显示以下内容:汽车名称、喜欢、增加按钮和减少按钮。当我尝试增加和减少喜欢时,所有元素都以相同的方式增加和减少。我如何保持喜欢彼此独立并且不共享相同的喜欢?例如,当我喜欢一辆汽车时,我只想要那一辆来增加likes
计数。有人可以帮助我解决这个问题吗?这是我当前的代码:
import React, {Component} from 'react';
class Cars extends Component {
constructor(props) {
super(props);
this.state = {
likes: 0
};
this.incFav = this.incFav.bind(this);
this.decFav = this.decFav.bind(this);
}
incFav(e) {
this.setState({likes: this.state.likes + 1});
}
decFav(e) {
this.setState({likes: this.state.likes - 1});
}
render() {
//Passed this.props.cars from another component. It is an array of cars.
const { cars } = this.props;
return (
<div>
{cars.map((car, key) => {
<li key={car}>
{car}
{this.state.likes}
<button onClick={this.incFav}>+</button>
<button onClick={this.decFav}>-</button>
</li>
})}
</div>
);
}
}
export default Cars;