Desidero visualizzare l'e-mail della persona nella finestra di avviso. Ma, non so come passare email come argomenti per mostrare il metodo Alert. Inoltre, non mi permette di usare neanche. Quindi, devo assegnare metode displayAlert a una variabile e usarlo in onClick. Non so perché non mi permetta di chiamarlo direttamente.Come passare argomenti alle funzioni 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
risposta
60
Il modo ES6:
Uso delle funzioni di direzione =>
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
la funzione anonima viene chiamata ed esegue this.displayAlert(item.email)
Il modo ES5:
È possibile farlo utilizzando .bind
e passando il parametro in tale posizione.
Si dovrebbe anche passare this
o utilizzare legano per mantenere il giusto contesto sul .map
funzione:
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);
mostrato nell'esempio qui: React - Communicate Between Components
1
Utilizzando la funzione freccia e babel plugin "trasformare classe -proprietà "
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');
}
}
Problemi correlati
- 1. Come passare argomenti alle funzioni di callback in PyQt
- 2. VIM: come passare argomenti alle funzioni dai comandi utente?
- 3. Qual è il modo pitone per passare argomenti alle funzioni?
- 4. Come passare argomenti alle fabbriche Laravel?
- 5. Passare argomenti in funzioni anonime in JavaScript
- 6. Passare intorno alle funzioni membro in C#
- 7. Come devo passare i dati SSE alle mie funzioni/operatori?
- 8. come allineare gli argomenti alle funzioni in emacs?
- 9. Scala: passare alla Seq alle funzioni var-args
- 10. Come passare argomenti extra alle funzioni di registrazione callback con twisted python api?
- 11. Posso passare auto_ptr per riferimento alle funzioni?
- 12. Come posso passare argomenti alle funzioni AWS Lambda utilizzando le richieste GET?
- 13. Come passare argomenti dalle funzioni di vimscript all'interfaccia python?
- 14. Come riutilizzare il componente React JS in React Native
- 15. in linea Argomenti funzione Passare
- 16. Passando funzioni in R come argomenti .Fortran
- 17. C++: puntatore alle funzioni con numero variabile di argomenti
- 18. Modelli Variadic, Inoltro perfetto alle funzioni con argomenti predefiniti
- 19. Passare argomenti con page.valutare
- 20. Modo corretto per passare i parametri dell'array alle funzioni D
- 21. Momento js con React js (ES6)
- 22. possiamo passare gli array come argomenti alle funzioni con questa sintassi, sotto gli imminenti standard C++ 0x?
- 23. React ES6 | Come accedere alle funzioni del componente figlio tramite i riferimenti
- 24. Come possono essere passati argomenti in variabili alle funzioni variadiche in PHP?
- 25. Passare alle proprietà in Backbone
- 26. Creazione di elementi in React JS
- 27. excel vba: Tipi speciali - Funzioni come argomenti delle funzioni
- 28. Come passare argomenti a NSAction?
- 29. Passare argomenti a Constructor in VBA
- 30. Come passare gli argomenti opzionali
Cosa succede se voglio aggiungere per passare un altro oggetto diciamo una stringa insieme all'elemento? –