Ich habe das Array von Objekten eines Objekts und ich verwende Karte, um sie anzuzeigen, jeder Benutzer haben eine Option Schaltflächen, die Optionen 'Bearbeiten' und 'Entfernen' jeder Option haben eine onlclick Funktion, die einen Zustand zu zeigen, eine andere Ansicht so der Codesatz erklären itselftSet-Status nur für Self-Daten in Karte auf reactjs
class App extends React.Component {
state = {
edit: false,
remove: false
}
handleEdit =() => {
this.setState({ edit: true })
}
handleRemove =() => {
this.setState({ remove: true })
}
cancelEdit =() => {
this.setState({ edit: false })
}
cancelRemove =() => {
this.setState({ remove: false })
}
renderEditItem =() => {
const {
state: {
edit,
remove
},
cancelEdit,
cancelRemove,
handleEdit,
handleRemove
} = this
if (edit) {
return (
<div>
<span>Edit view</span>
<br/>
<button onClick={cancelEdit}>Cancel</button>
</div>
)
}
if (remove) {
return (
<div>
<span>Remove view</span>
<br/>
<button onClick={cancelRemove}>Cancel</button>
</div>
)
}
return (
<div>
<button onClick={handleEdit}>Edit</button>
<br/>
<button onClick={handleRemove}>Remove</button>
</div>
)
}
renderUsers =() => {
const {
renderEditItem
} = this
const users = [
{
id: 1,
name: 'User1'
},
{
id: 2,
name: 'User-2'
},
{
id: 3,
name: 'User-3'
}
]
return users.map((user) => {
return (
<ul key={user.id}>
<li>
<div>
<span ref='span'>{user.name}</span>
<br/>
{renderEditItem()}
</div>
</li>
</ul>
)
})
}
render() {
return (
<div>
{this.renderUsers()}
</div>
)
}
}
React.render(
<App />,
document.getElementById('app')
);
JSfiddle: Here
die Frage ist, wie können Sie sehen, ist, wenn ich auf die Schaltfläche klicken Sie den Zustand setzen für Bearbeiten oder Entfernen Option, dies wird die Ansicht für alle Elemente, zeigen und sollte nur die Ansicht, die angeklickt wird, ich kenne den Status chan ge zu wahr und ist für alle Items gleich, aber ich weiß nicht, wie man den Zustand nur für einen Eintrag festlegt.
Vielen Dank im Voraus.
Danke, und ich bemerkte, dass es eine andere Art und Weise ist dies ohne etwas anderes zu tun in dem Objekt hinzufügen, und sind konvertieren Komponente Was auch immer Sie in zurückkehren mögen die map-Funktion, auf diese Weise wird nur der onClick-fnc den Status in den Komponentenbereich auslösen. –