In my Reactjs Application I am having a table. I am using javascript's map function to fill the rows. That means my rows are rendered dynamically. This how I do it
<tbody>
{ this.state.MediaFiles.map((item, i) => (
<tr id={i}>
<td className="v-align-middle">
<div className="checkbox">
<input type="checkbox" value="3" id={ "checkbox1" + i}/>
<label htmlFor={ "checkbox1" + i} onClick={()=> this.handleCheckboxClick(i,item.url, item.poster.list_thumbnail)}/>
</div>
</td>
<td className="v-align-middle semi-bold">
<div className='file-image'
style={{backgroundImage: `url('${item.poster.list_thumbnail}')`}}/>
<div className="movie-title">
<span className="movie-name">
<a onClick={this.showVideo(item.url, item.file, item.id, item.title, item.duration, item.height, item.width, item.frame_rate)}>{item.title}</a>
</span>
<br/>
<span className="movie-info">Movie Trailer</span>
</div>
</td>
<td className="v-align-middle text-success"> {this.jobStatus(item.job_status)}</td>
</tr>
))
}
</tbody>
Now I want each row of this table to be expandable.
I have tried the first answer of this question Can a table row expand and close?
Problem: My problem with the answer in above question's link is, it does not render the table rows by mapping it to some data. I do it by mapping. So in my map function, I cannot include two rows. When I try to, the syntax gets wrong as expected.
What I tried: I tried to put the two (s) in a div inside map function. But that just screws the css of table row. The two rows I am talking about is "the main row" and the "hidden row" which will get open when main row is clicked.
How should I do it.