我已经设置了一个 react-bootstrap-table2(又名 react-bootstrap-table-next)表,如下所示:
function buttonFormatter(cell, row) {
return (
<NominateButton
row={ row }
auctionId={ auctionId }
teamId={ teamId }
/>
);
}
const queue_columns = [{
dataField: 'player.num',
text: 'Player Num',
editable: false
}, {
dataField: 'player.name',
text: 'Player',
editable: false
}, {
dataField: 'player.position',
text: 'Position',
editable: false
}, {
dataField: 'initialBid',
text: 'Initial Bid',
}, {
text: 'Nominate',
formatter: buttonFormatter,
editable: false
}];
return (
<BootstrapTable
bootstrap4={ true }
keyField='player.num'
data={ this.state.data }
columns={ queue_columns }
cellEdit={ cellEditFactory({ mode: 'click',
blurToSave: true }) }
striped
hover />
);
问题是在创建表时行对象被传递到 NominateButton 组件,因此当更新 initialBid 列时,更新的值不会在行属性中更新到该行的 NominateButton。NominateButton 在 GraphQL 突变中使用该 initialBid 值。
在编辑和更改一行中的 Initial Bid 单元格后,如何以某种方式使用更改后的值更新 NominateButton 的状态?
有没有办法在调用 cellEditFactory 时指定函数名(使用 afterSaveCell 键)并将该函数名作为属性传递给 NominateButton?