Ich benutze Reactable, um eine Tabelle zu erstellen. Wenn ich auf die Aktionsleiste klicke, möchte ich eine Box mit zusätzlichen Informationen über diese Zeile anzeigen, indem ich den Stil ändere. Dies ist mein Code so weit:React - Ereignisse in derselben Klasse mit Parametern
var SelLines = new Object();
var Home = React.createClass({
handleClick: function(e) {
console.log("##Clicked##");
},
render: function() {
var tableRows = Data.map(function(tableRow) {
console.log(tableRow);
SelLines[tableRow.ID] = false;
console.log(SelLines);
if (SelLines[tableRow.ID]) {
return (
<Tr>
<Td column="ID">{tableRow.ID}</Td>
<Td column="DESCRIPTION">{tableRow.DESCRIPTION}</Td>
<Td className="cellSelected" column="ACTION"><a onClick={SelLines[tableRow.ID] = true;Home.handleClick}>{tableRow.ACTION}</a></Td>
//// = true;Home.h ## not working
</Tr>
);
} else {
return (
<Tr>
<Td column="ID">{tableRow.ID}</Td>
<Td column="DESCRIPTION">{tableRow.DESCRIPTION}</Td>
<Td className="cellNotSelected" column="ACTION"><a onClick={Home.handleClick}>{tableRow.ACTION}</a></Td>
</Tr>
);
}
});
return (
<div>
<div>
<Table className="table" id="table">
<Thead>
<Th column="ID">
<strong className="ID-header">ID</strong>
</Th>
<Th column="DESCRIPTION">
<em className="DESCRIPTION-header">DESCRIPTION</em>
</Th>
<Th column="ACTION">
<em className="ACTION-header">ACTION</em>
</Th>
</Thead>
{tableRows}
</Table>
</div>
</div>
);
}
});
Wie kann ich einen Parameter handelt passieren?
'onClick = {SelLines [tableRow.ID] = true; Home.handleClick}' ist das Äquivalent zu '{onClick: SelLines [tableRow.ID] = true ; Home.handleClick} '. Das ist einfach JavaScript ungültig. Das '{...}' kann nur * Ausdrücke * enthalten. –
Können Sie Ihre Formatierung korrigieren? Außerdem setzen Sie 'Sellines [tableRow.ID] = false 'in Ihrer' map'-Funktion, so dass es niemals zu Ihrer 'if-wahr'-Bedingung kommt. – Aaron
@PL Ich habe Ihre Formatierung für Sie korrigiert. Das nächste Mal poste bitte gut formatierten Code. – Aaron