I'm using a map function to render many events in a page. When I click on an event, I should see the descrition of the event below that event. Currently, the description of the event I want appears for every event on the map, which is bad.
How can I do, so the description of the event appears only in the event that I am clicking?
<div className="dayDiv">
<p className="text day"> {day} </p>{" "}
<div className="eventsDiv">
{" "}
{this.state.events &&
this.state.events.map(data => {
if (
date.getUTCDate() === data.day &&
date.getMonth() === data.month
) {
return (
<div className="event">
<p className="text">
<span className="time">
{" "}
{data.time} {data.meridian} -{" "}
</span>{" "}
{data.title}{" "}
</p>{" "}
<div
onClick={e => this.expandEvent(data.id)}
className="smallPlusDiv"
>
<i className="fa fa-caret-down"> </i>{" "}
</div>{" "}
{this.state.eventData &&
this.state.expandEvent &&
this.state.expandEvent === true && (
<div>
<table className="text eventDescription">
<tr className="text eventDescription">
<td className="text eventDescription">Where:</td>{" "}
<td className="text eventDescription">
{" "}
{this.state.eventData.data.adress}{" "}
</td>{" "}
</tr>{" "}
<tr>
<td className="text eventDescription">When:</td>{" "}
<td className="text eventDescription">
{" "}
{this.state.eventData.data.time}{" "}
{this.state.eventData.data.meridian}{" "}
{this.state.eventData.data.day}{" "}
{this.state.eventData.data.month}{" "}
</td>{" "}
</tr>{" "}
<tr>
<td className="text eventDescription">About:</td>{" "}
<td className="text eventDescription">
{" "}
{this.state.eventData.data.description}{" "}
</td>{" "}
</tr>{" "}
<tr>
<td className="text eventDescription">price:</td>{" "}
<td className="text eventDescription">
{" "}
{this.state.eventData.data.price}{" "}
</td>{" "}
</tr>{" "}
</table>{" "}
</div>
)}
</div>
);
}
})}{" "}
</div>{" "}
</div>