Начал переписывать front одного проекта на React, параллельно знакомлюсь с ним.
Суть такая:
На странице выводится таблица со списком карт. В каждой строчке таблицы есть кнопка, при нажатии которой
должно открываться модальное окно (bootstrap 4), и в это модальное окно подставляется код карты, строка с которой была выбрана.
Таблица со списком карт и модальное окно сделаны отдельными React компонентами.
class CardModal extends React.Component{
render(){
return(
<div className="modal fade" id="CardModal">
<div className="modal-dialog" role="document">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title">Карта</h5>
<button type="button" className="close" onClick="clearForm();" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div className="modal-body">
<CardInfo card_code={this.state.code}/>
</div>
<div className="modal-footer">
<button type="button" className="btn btn-primary" onClick="saveCard();">Сохранить</button>
<button type="button" className="btn btn-secondary" onClick="clearForm();" data-dismiss="modal">Отмена</button>
</div>
</div>
</div>
</div>
)
}
}
class CardsList extends React.Component{
render(){
let temp = this.props.cards;
let cards = temp.map(function (item, index){
return (
<tr key={'id_'+item.code}>
<td>
<input type={'checkbox'} id={item.code} />
</td>
<td>{item.code}</td>
<td></td>
<td>{item.holder_name}</td>
<td>{item.accumulation}</td>
<td>
// нужная кнопка открытия модального окна
<button data-toggle="modal" data-target="#CardModal" onClick={} type="button" className="fa fa-eye" aria-hidden="true" title="Просмотр"></button>
</td>
</tr>
)
})
return (
<div>
<table id={'scrollData'}>
<thead>
<tr>
<th></th>
<th>КОД</th>
<th>ТИП</th>
<th>НАКОПЛЕНИЯ</th>
<th>ФИО</th>
<th></th>
</tr>
</thead>
<tbody id={'tbody'} style={{height: '485px'}}>
{cards}
</tbody>
</table>
// Компонент с модальным окном
<CardModal/>
</div>
);
}
}
Как, собственно, добиться того, чтобы при нажатии кнопки, в свойства или в состояние компонента передавалось item.code?