javascript - 反应,使状态适用于循环中的单个元素
问题描述
我有 3 个圆圈在切换时应该更改图像的 src,目前所有圆圈在单击一个时都会切换 src。我可以使用一些帮助来解决该问题。
这就是我现在得到的
this.state = {
fillCircle: false
};
circleHandler = () => {
this.setState({ fillCircle: !this.state.fillCircle });
};
render() {
let circles = [];
for (var i = 0; i < 3; i++) {
circles.push(
<img
key={i}
className="circle"
onClick={this.circleHandler.bind()}
src={this.state.fillCircle ? filled_circle : circle}
alt=""
/>
);
}
return (
<div>
{circles}
</div>
);
解决方案
这是因为这些元素中的每一个都需要它自己的状态。为每个圆圈编写一个单独的组件。然后你会做
circles.push(<CircleComponent key={index} />)
在 CircleComponent 中,您将拥有每个组件的状态并为每个组件切换。不要忘记钥匙。
推荐阅读
- reactjs - IDToken 为 react-native-google-signin 返回 null
- clang - 如何匹配来自 cxxMethodDecl 节点的所有返回 stmt
- r - networkD3:如何在没有输出的情况下将桑基图中的颜色分配给节点
- html - HTML 网格在元素之间有很大的空间
- r - 构面网格标题和标签
- graphics - 示例需要在 TeX 中使用 tikz 包进行 for 循环
- r - tidyverse : 连续出现零
- python - Openvino-opencv videocapture 异常行为
- php - PHP 日期问题 - 获取正确的周数
- qt - 将 QPixmap 设置为 Qlabel 会导致分段错误和应用程序崩溃