2016-11-10 3 views
0

Ich habe eine Liste wie so erstellt:Mit State und Taste ein Element aus einer Liste entfernen

return (this.state.limit).fill().map((_,index) => { 
    return ( 
    <div key={`${index}`}> Item </div> 
) 
) 

Wie kann ich eine Schaltfläche, die ich ein bestimmtes div-Element sowie reduziert die Staatsgrenze lassen Sie sich entfernen ?

+0

Aktualisieren Sie den 'limit' Zustand (das Einzelteil über setState entfernen) und lassen Sie es React wieder machen. –

+0

Durch die Aktualisierung des Status wird nur das letzte div gelöscht. Ich suche nach einer Möglichkeit, ein Div-Element in der Mitte meines Arrays zu entfernen. – kermitvomit

+0

Dann entfernen Sie das bestimmte Element in dem Zustand. –

Antwort

2

In React müssen Sie fast alles an Daten binden. In Ihrem Beispiel sollten alle diese Elemente durch einige zugrunde liegende Daten repräsentiert werden. Hier ist ein sehr einfaches Beispiel das zeigt:

class Example extends React.Component { 
 
    constructor() { 
 
    super(); 
 
    this.state = { 
 
     data: ['Item 1', 'Item 2', 'Item 3', 'Item 4', 'Item 5'], 
 
    }; 
 
    } 
 
    removeItem(item) { 
 
    let data = this.state.data.filter((_, i) => i != item); 
 
    this.setState({ data }); 
 
    } 
 
    render() { 
 
    return (
 
    <div> 
 
     {this.state.data.map((item, i) => <div key={i} onClick={() => this.removeItem(i)}>{item}</div>)} 
 
    </div> 
 
    ); 
 
    } 
 
} 
 

 
ReactDOM.render(<Example/>, document.getElementById('View'));
<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="View"></div>

+0

Danke! Das war die Richtlinie, die ich brauchte :) – kermitvomit

+0

@FabianSchultz Whoops, guter Punkt. Ignorier mich! –

+0

@FabianSchultz Ich habe diesen Kommentar gelöscht, damit jemand anderes das nicht sieht und verwirrt wird. –

0

eine Schaltfläche erstellen

<button onClick={removeDiv}> 
    Remove div 
</button> 

Add Funktion removeDiv

function removeDiv(){ 
    this.state.limit.shift() 
    this.setState({limit: this.state.limit}) 
} 

Wenn der Zustand ändert, Ihre Komponente wird es selbst mit den neuen Zustand wieder machen.

Verwandte Themen