【发布时间】:2020-07-19 22:22:28
【问题描述】:
所以我为喜欢创建了一个计数器。我总共有 3 个元素,我希望当用户单击其中一个元素时,确切的元素是递增的,但到目前为止,如果单击一个元素,所有元素都会递增,请帮助我
class home extends Component {
constructor(props) {
super(props);
this.state = {
likeCounter: 0,
};
}
counter = () => {
this.setState((prevState) => ({
likeCounter: prevState.likeCounter + 1,
}));
};
render() {
return (
<>
<button className="click" onClick={this.counter}>
{this.state.likeCounter} likes
</button>
<button className="click" onClick={this.counter}>
{this.state.likeCounter} likes
</button>
<button className="click" onClick={this.counter}>
{this.state.likeCounter} likes
</button>
</>
);
}
}
【问题讨论】:
-
您的代码中有许多语法错误。也许先解决这些?这是一个简短的列表:
this.state{应该是this.state = {,this.setState((prevState)=>{应该是this.setState((prevState)=>({,结束标签使用 / 而不是 \ 所以应该是</button>... -
@Dominik 完成,抱歉我是用笔记本电脑在手机上输入的,所以我没有注意到,谢谢。但是当我点击其中一个按钮时,如何让它为每个而不是所有的都增加
-
仍有问题。我已为您修复了它们,如果这是问题所在,请随时恢复。
-
Duplicate
id(几乎可以肯定)是您的问题,使用类名并使用该类遍历元素。id必须在文档中是唯一的。 -
@David 说恢复 Monica 谢谢
标签: javascript reactjs setstate