Molto spesso capita di avere una form con molti campi e quindi molti controlled component. Se avessimo 40 campi, dovremmo scrivere quaranta metodi molto simili tra loro per gestire il cambio di valore di questi campi. Per ridurre il codice, possiamo creare un unico metodo che sia in grado di gestire il cambio di valore di tutti i controlled component.
class MyFormComponent extends React.Component { constructor(props) { super(props); this.state = { firstName: '', lastName: '' }; } handleChange(event) { this.setState({ [event.target.name]: event.target.value }); } handleSubmit(event) { alert('submitted'); } render() { return ( <form onSubmit={this.handleSubmit.bind(this)}> <label>First name</label> <input type="text" name="firstName" value={this.state.firstName} onChange={this.handleChange.bind(this)}/> <label>Last name</label> <input type="text" name="lastName" value={this.state.lastName} onChange={this.handleChange.bind(this)}/> <input type="submit" value="Submit" /> </form> ); } }
In questo esempio, abbiamo due textbox che al cambio invocano lo stesso metodo (handleChange). Questo metodo sfrutta il nome della textbox che ha scatenato l'evento come nome della proprietà dello stato da impostare. L'importante è impostare l'attributo name dei vari campi e chiamare le proprietà dello stato del component allo stesso modo.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Generare velocemente pagine CRUD in Blazor con QuickGrid
Recuperare App Service cancellati su Azure
Utilizzare DeepSeek R1 con Azure AI
Recuperare l'ultima versione di una release di GitHub
Creare una libreria CSS universale: i bottoni
Creare una custom property in GitHub
Creare agenti facilmente con Azure AI Agent Service
Effettuare il refresh dei dati di una QuickGrid di Blazor
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Rendere le variabili read-only in una pipeline di Azure DevOps