Ich verwende react-bootstrap-table (var ReactBsTable = require ("react-bootstrap-table")).
Ich habe versucht, eine Schaltfläche hinzuzufügen, die beim Klicken die ID oder die Zeile Datenkorrespondent zu dieser Schaltfläche anzeigen. Ich benutze jquery, aber ich gebe eine ID auf die Schaltfläche, aber alle diese Schaltflächen hätten die gleiche ID (validatebutton), so dass nur die erste Arbeit und der Rest nicht, weil ich nicht die gleiche ID für viele Komponenten haben kann.bekomme die Zeilendaten über eine Schaltfläche in einer react-bootstrap-Tabelle
Irgendeine Idee bitte.
<BootstrapTable data={this.state.activities} pagination={true} hover={true} search={true} selectRow={selectRowProp} options={options}>
<TableHeaderColumn isKey={true} dataField="id" hidden {true}>ID</TableHeaderColumn>
<TableHeaderColumn dataField="title" dataSort={true}>Title</TableHeaderColumn>
<TableHeaderColumn dataField="adress" dataSort{true}>Adress</TableHeaderColumn>
<TableHeaderColumn dataField="button" dataFormat={this.buttonFunction}></TableHeaderColumn>
</BootstrapTable>
buttonFunction: function (cell, row) {
var today = new Date().toISOString();
if (row.status === "En cours") {
if (row.dateEnd > today) {
return <Alert_Validate></Alert_Validate>;
} else {
return <label>
<button type="button" id="validatebutton" onClick= {this._validateFunction} className="bbtn btn-primary btn-sm"><i className="fa fa-check fa-1x" aria-hidden="true"></i>
</button>
</label>
}
}
},
_validateFunction: function() {
var userid=this.props.params.id;
$("#validatebutton").click(function() {
var $row = $(this).closest("tr");
var activityid = $row.find("td:nth-child(2)");
console.log("activity id :"+activityid.text());
});
ich wirklich zu schätzen wissen deine Hilfe # omerts #. Es funktioniert bei mir.Kannst du mir erklären warum es funktioniert wenn ich benutze (onClick = {() => {this._validateFunction (row)}} und no wenn ich das nutze (onClick = {{this._validateFunction (row) }). Tnk you – ShMswi
Mit letzterem ruft die Funktion sofort auf, ohne auf den Klick zu warten, und das Ergebnis der Funktion wird für den onClick-Handler gespeichert. Die erste Methode erstellt im Grunde eine anonyme Funktion, die den Aufruf an die _validateFunction umschließt. Erst wenn der Benutzer darauf klickt, wird die _validateFunction ausgelöst. In es5 wäre es onClick = {(function() {this._validateFunction}). Bind (this)}. (Mit() => Auto bindet die This var). – omerts
Tnk Sie für Ihre Antwort. – ShMswi