在地图功能中,我想设置一个状态,让我在单击 div 时更改背景颜色
所以这是我的问题,我映射从后面收到的一些数据,它返回一组 div,我希望能够单击一个 div,更改他的颜色背景并将其用于总价(它们是您可以选择的选项)选择)。
我试图设置一个“已单击”状态,该状态在单击时设置为 true,但该状态位于所有元素上,而不是我刚刚单击的唯一元素。如果我的状态为真,我会更改背景颜色并将其添加到总价中(在模式中详细计算)
<p className="title-config">Configuration</p>
{data &&
data.additionalCharges.map((charges, index) => {
// console.log("charges.map", charges);
return (
<div
className={
clicked === true ? "clicked-config" : "unclicked-config"
}
key={index}
onClick={() => setClicked(true)}
>
<p>{charges.title}</p>
<p>{charges.description}</p>
<p>
{charges.price.amount} {location.state.price.currency}
</p>
</div>
);
})}
</div>
<div className="colonne2-config">
<div>
<span> Total {location.state.total}</span>
<span>{location.state.price.amount}</span>
</div>
<div>
<div onClick={() => setShowModal(true)}>Voir les details du prix</div>
<Modal
isOpen={showModal}
onRequestClose={() => setShowModal(false)}
style={{
overlay: {
backgroundColor: "lightgrey",
backgroundOpacity: "50%",
},
}}
>
<h1>Details du prix</h1>
<button onClick={() => setShowModal(false)}> X </button>
</Modal>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是实现预期目标的工作示例:
代码片段
解释
clicked
需要是一个数据结构,可以跟踪哪些渲染的项目被点击(即选择),哪些没有。clicked
对象具有保存总
价格的次要目的。getClass
方法)total
中或从total
中删除总体而言 - 这是一个相当简单、直接的代码片段。
Here is a working example to achieve the desired objective:
Code Snippet
Explanation
clicked
needs to be a data-structure that can track which of the items rendered are clicked (ie, selected) and which are not.clicked
object serves a secondary purpose of holding thetotal
price.getClass
method)total
Overall - this is a fairly simple, straight-forward code snippet.
根据我对这个问题的理解,您可以做的是,添加另一个名为 divIndex 的状态并将条件更改为
clicked && divIndex === index
或者您可以只删除单击状态并仅使用 divIndex 状态,就像 divIndex === index 一样。As per my understanding of the question what you can do is, add another state called divIndex and change the condition to
clicked && divIndex === index
or you can just remove the clicked state and only use the divIndex state also like divIndex === index.所以我找到了某种解决方案,但它并不完美,在我的 newOption 中,它不会删除我有时单击的元素...不过,在选项卡中添加一个元素是完美的...
这就是我所做的。
它可能不是最佳的,但它接近我的结果,只需要解决该选项在单击时不离开选项卡的情况
so i arrived to some kind of solution but it's not perfect, in my newOption, it does not remove the element i clicked on sometimes... it works perfect to add an element in the tab though...
here what i did.
it's probably not opti but it's close to my result, just need to resolve the case when the option does not leave the tab on click