我在map(loop)
中创建了多个复选框。我无法添加两个功能:
1.当用户单击任何复选框时,它应该显示复选框已选中
1.默认情况下,eventGoing
变量中存在的所有event_id都应该被选中。
{
products.map((post) => (
<div>
// eventGoing going contains the list of event ids which I extracted from DB
if(eventGoing.indexOf(event_id) > -1)
{
// need to check the checkbox if event_id is within eventGoing variable
}
<input
checked={checked}
name="goingChk"
value={"checkbox-" + post.event_id}
type="checkbox"
id={"checkbox-" + post.event_id}
onClick={(e) => handleGoing(e, post.event_id)}
/>
<br />
</div>
));
}
忽略编码错误,因为我从2个不同的功能组件中提取代码。
请帮助我如何获得上述两个功能。
2条答案
按热度按时间k10s72fa1#
完整代码:
ncgqoxb02#
问题:
问题是您在单个布尔状态上保存值,这会导致问题(选中所有复选框)
解决方案
你可以试试
您可以在这段代码中使用replace products数组和您的products数组,应该可以正常工作。
不过如果你想在你的代码里面做,你可以这样做
当然这里的更新的例子
完整代码: