Ich baue eine Tabelle, die eine normale Zeile und dann zwei Zeilen dahinter hat, die ausgeblendet sind, bis das Plus-Symbol angeklickt wird. Wenn auf das Symbol geklickt wird, sollte es sich zu einem Minus ändern und die versteckten Zeilen sollten CSS-Klassen ändern. Auch sollte umgekehrt funktionieren.React ES6 onClick andere Komponenten ändern
import React from 'react';
class HiddenRow extends React.Component {
render() {
return (
<tr className="hidden-row">
<td>Stuff</td>
</tr>
);
}
}
class NormalRow extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
console.log('here');
// Expand rows if hidden change icon to fa-minus-circle
// Hide rows if not and change icon to fa-plus-circle
}
render() {
return (
<tr>
<td><i className="fa fa-plus-circle" onClick={this.handleClick}></i> Hello</td>
</tr>
);
}
}
class ParentDiv extends React.Component {
render() {
return (
<div>
<table>
<tbody>
<NormalRow />
<HiddenRow />
<HiddenRow />
<NormalRow />
<HiddenRow />
<HiddenRow />
</tbody>
</table>
</div>
);
}
}
Edit: Die Tabelle wird mehrere Sätze von normalen Zeilen und versteckte Reihen haben. Wenn Sie auf das Symbol in der normalen Zeile klicken, sollten Sie nur die beiden unmittelbar verborgenen Zeilen umschalten. Ich benutzte JQuery, um dies zu tun, wenn ich Angular verwendete, aber zu React wechselte. Ich habe mit JQuery mit React als Lösung gespielt.
Dies könnte sie einfach öffnen, aber nicht sicher, dass sie sie bei einem zweiten Klick verbergen. Denken Sie, das Handle sollte sein 'this.setState = {displayHiddenRows:! This.state.displayHiddenRows}' – Adam
Auch mein Beispiel wird mehrere Sätze von normalen/versteckten Zeilen haben. – Adam