Mit Reagieren Sie einfach die Wiedergabe Ihrer Komponente anpassen kann je nach Zustand. Sie können einen booleschen Wert im Status haben (z. B. isOpen
) und den Wert umschalten, wenn Sie auf die Schaltfläche Mehr/Weniger klicken.
Danach müssen Sie nur X Elemente rendern und den Schaltflächentext abhängig vom booleschen Wert ändern.
Ich habe ein Beispiel mit Daten in einem Array gespeichert, aber Sie könnten leicht auf Ihren Fall anpassen.
const MAX_ITEMS = 3;
class MoreLessExample extends React.Component{
componentWillMount() {
this.state = {
isOpen: false,
};
this.items = [
'Item 1',
'Item 2',
'Item 3',
'Item 4',
'Item 5',
'Item 6',
];
}
toggle =() => {
this.setState({ isOpen: !this.state.isOpen });
}
getRenderedItems() {
if (this.state.isOpen) {
return this.items;
}
return this.items.slice(0, MAX_ITEMS);
}
render() {
return(
<div>
{this.getRenderedItems().map((item, id) => (
<div key={id}>{item}</div>
))}
<button onClick={this.toggle}>
{this.state.isOpen ? 'less' : 'more'}
</button>
</div>
);
}
}
ReactDOM.render(<MoreLessExample />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
Was bedeutet npm haben mit div Größe zu tun ?? – Chris
Können Sie uns zeigen, was Sie bisher getan haben? –
Bitte fügen Sie Code hinzu, um zu zeigen, was Sie bisher versucht haben. Überprüfen Sie [Wie Sie fragen] (https://stackoverflow.com/help/how-to-ask), um gute Fragen zu stellen. – bennygenel