Ich möchte die E-Mail-Adresse der Person im Warnfenster anzeigen. Aber ich weiß nicht, wie man E-Mails als Argumente an die displayAlert-Methode weiterleitet. Außerdem wird es mich auch nicht benutzen lassen. Also, ich muss displayAlert Methos einer Variablen zuweisen und sie in onClick verwenden. Ich weiß nicht, warum ich es nicht direkt nennen darf.Wie übergeben Sie Argumente an Funktionen in React js?
class People extends React.Component{ render(){ var handleClick = this.displayAlert; var items = this.props.items.map(function(item) { return( <ul key = {item.id}> <li> <button onClick= {handleClick}>{item.lastName + ', ' + item.firstName}</button> </li> </ul> ) }); return (<div>{items}</div>); } displayAlert(){ alert('Hi'); } } class PersonList extends React.Component{ render() { return ( <div> <People items={this.props.people}/> /* People is an array of people*/ </div> ); } }
25
A
Antwort
60
Der ES6 Weg:
mit dem Pfeil Funktionen =>
const items = this.props.items.map((item) => (
<ul key={item.id}>
<li>
<button onClick={() => this.displayAlert(item.email)}>
{item.lastName + ', ' + item.firstName}
</button>
</li>
</ul>
));
onClick
die anonyme Funktion aufgerufen wird und führt this.displayAlert(item.email)
Der ES5-Weg:
Sie könnten dies mit .bind
tun und den Parameter dort übergeben.
var items = this.props.items.map(function(item) {
return (
<ul key={item.id}>
<li>
<button onClick={this.displayAlert.bind(this, item.email)}>
{item.lastName + ', ' + item.firstName}
</button>
</li>
</ul>
);
}, this);
Gezeigt hier im Beispiel: React - Communicate Between Components
1
mit der Pfeilfunktion und babel Plugin „transformations Klasse
Sie auch this
oder benutzen Sie binden an halten den richtigen Kontext auf Ihrer .map
Funktion übergeben sollen "Eigenschaften"
class People extends React.Component {
render() {
return (
<ul>
{ this.props.items.map((item) => (
<li key={item.id}>
<button onClick={this.displayAlert(item)}>
{item.lastName + ', ' + item.firstName}
</button>
</li>
))}
</ul>
)
}
displayAlert = (item) => (event) => {
// you can access the item object and the event object
alert('Hi');
}
}
Verwandte Themen
- 1. Backbone js Argumente übergeben
- 2. Wie kann ich Argumente an anonyme Funktionen in JavaScript übergeben?
- 3. Unerklärliche Argumente an JS-Client übergeben reconnectionStrategy
- 4. Wie übergeben Sie Argumente an jvmmon?
- 5. Wie übergeben Sie Argumente an eine Dockerfile?
- 6. Wie werden Funktionen ausgewertet, wenn sie als Argumente übergeben werden
- 7. Übergeben Sie 2 Argumente an das Kontrollkästchen
- 8. Übergeben Sie Argumente an neu erstellten Prozess
- 9. Wie binden Sie Argumente an gegebene Werte in Python-Funktionen?
- 10. So übergeben Sie Argumente an Windows-Dienst
- 11. Übergeben von Funktionen als Argumente in Matlab
- 12. Wann müssen Sie Argumente an `Thread.new` übergeben?
- 13. Wie übergeben Sie Argumente an Ant.java() -Methode in Groovy
- 14. Wie übergeben Sie Argumente an build() in kivy?
- 15. Wie übergeben Sie Argumente an Windows-Dienste in C#?
- 16. Wie übergeben Sie Argumente an die Eingabeaufforderung in C# -Code?
- 17. Wie übergeben Sie Argumente an einen GenericController-Konstruktor in MVC?
- 18. Wie übergeben Sie Argumente an einen Rückruf in Erlang?
- 19. Wie übergeben Sie mehrere Argumente an OnSuccess-Funktion in Prototype?
- 20. Argumente an angularjs Filter übergeben
- 21. Mehrere Argumente an dbGetQuery() übergeben?
- 22. Scrapy: Argumente an cmdline.execute() übergeben
- 23. JVM-Argumente an JMH übergeben
- 24. Übergeben von Inline-Funktionen als Argumente
- 25. Libew, Wie Argumente an relevante Rückrufe übergeben
- 26. ExtJS4: Wie übergeben Argumente an initComponent
- 27. Wie übergeben Sie Argumente von vimscript-Funktionen an die Python-Schnittstelle?
- 28. "Argumente an Subroutine übergeben" -Frage?
- 29. Übergeben von Array an Komponenteneigenschaft in React
- 30. Wie übergeben Sie Argumente an Prozesse erstellt von fork()
Was ist, wenn ich hinzufügen möchte, um ein anderes Objekt zu übergeben, sagen wir eine Zeichenfolge zusammen mit Element? –