Dieser Artikel bietet Ihnen eine Einführung in die Verwendung von React-Formularelementen (mit Code). Freunde in Not können darauf verweisen. helfen.
Heute werden wir über Reaktionsformelemente sprechen.
Gesteuertes Element
Sehen wir uns an, wie man den Wert des Eingabefelds erhält
import React, { Component } from 'react'; class Trem extends React.Component { constructor(props){ super(props); this.inp = this.inp.bind(this); this.sub = this.sub.bind(this); this.state = { place:"请输入...", inputV:'' } }; inp(e){ this.setState({ inputV:e.target.value {/* 通过事件细节改变inputV的值*/} }); console.log(e.target.value) }; sub(){ console.log(this.state.inputV) }; render(){ return ( <div> <input type="text" onChange={this.inp} placeholder={this.state.place} value={this.state.inputV}/> <br/> <button onClick={this.sub}>{this.props.main}</button>{/*此处的main是来自父组件的传值*/} </div> ) } } export default Trem;
Codeinterpretation:
this.inp = this. inp.bind(this); Binden Sie die inp-Funktion this so, dass sie auf
this.state zeigt. Initialisieren Sie die Variable
inp(). Überwachen Sie den Eingabewert der Eingabe
this.state.inputV Wert der Eingabe durch Zuweisung
textarea tag
import React, { Component } from 'react'; class Trem extends React.Component { constructor(props){ super(props); this.inp = this.inp.bind(this); this.sub = this.sub.bind(this); this.state = { place:"请输入...", inputV:'' } }; inp(e){ this.setState({ inputV:e.target.value }); console.log(e.target.value) }; sub(){ console.log(this.state.inputV) }; render(){ return ( <div> <textarea type="text" onChange={this.inp} placeholder={this.state.place} value={this.state.inputV}/> <br/> <button onClick={this.sub}>{this.props.main}</button> </div> ) } } export default Trem;
Dropdown-Auswahlfeld
import React, { Component } from 'react'; class Trem extends React.Component { constructor(props){ super(props); this.select = this.select.bind(this); this.state = { selectV:'coconut' } }; select(e){ this.setState({ selectV:e.target.value }); console.log(e.target.value) }; render(){ return ( <div> <select value={this.state.selectV} onChange={this.select}> <option value="grapefruit">Grapefruit</option> <option value="lime">Lime</option> <option value="coconut">Coconut</option> <option value="mango">Mango</option> </select> <br/> </div> ) } } export default Trem;
Codeinterpretation:
Bitte beachten Sie, dass aufgrund des ausgewählten Attributs zunächst die Option Kokosnuss ausgewählt ist. In React wird das zuvor ausgewählte Attribut nicht verwendet, aber das Wertattribut wird im Root-Select-Tag verwendet, um das ausgewählte Element darzustellen. Dies ist bei kontrollierten Komponenten praktischer, da Sie die Komponente nur an einer Stelle aktualisieren müssen.
Kurz gesagt, ,
Mehrere Eingabelösungen
Wenn Sie über mehrere kontrollierte Eingabeelemente verfügen, können Sie jedem Element einen Namen hinzufügen. Attribut, damit der Handler auswählen kann, was basierend auf dem Attribut zu tun ist auf den Wert von event.target.name.
import React,{Component} from 'react'; class More extends React.Component { constructor(props){ super(props); this.state = { isGoing: true, numberOfGuests: 2 }; this.handleInputChange = this.handleInputChange.bind(this); }; handleInputChange(event) { const target = event.target; const value = target.type === 'checkbox' ? target.checked : target.value; const name = target.name; this.setState({ [name]: value }); console.log(event.target.checked,event.target.value) }; render(){ return ( <form> <label> Is going: <input name="isGoing" type="checkbox" checked={this.state.isGoing} onChange={this.handleInputChange} /> </label> <br /> <label> Number of guests: <input name="numberOfGuests" type="number" value={this.state.numberOfGuests} onChange={this.handleInputChange} /> </label> </form> ) } } export default More;
Codeinterpretation:
this.setState({ });
es6 berechnete Attributnamenssyntax
Quellcodeadresse: https://github.com/Nick091608...
【Verwandte Empfehlungen: Video-Tutorial reagieren】
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung von React-Formularelementen (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!