모든 입력에서 값을 얻으려고합니다. 입력에서 입력 값을 가져올 수 있지만 선택 태그의 드롭 다운에서는 가져올 수 없습니다.
내가 도대체 뭘 잘못하고있는 겁니까?
class App extends Component {
constructor(props){
super(props)
this.state = {
contacts
};
}
removeContact(id) {
const removedID = contact => contact.id !== id;
const updatedContacts = this.state.contacts.filter(removedID)
this.setState({contacts: updatedContacts})
}
handleSubmit(e){
e.preventDefault(e)
const target = e.target;
console.log(target.email.value)
console.log(target.gender.value)
}
render() {
return (
<div className="App">
<form onSubmit={this.handleSubmit}>
<div>
<label>
First Name:
<input type="text" value={this.state.first_name} name="first_name" />
</label>
</div>
<div>
<label>
Last Name:
<input type="text" value={this.state.last_name} name="last_name" />
</label>
</div>
<div>
<label>
Email:
<input type="text" value={this.state.email} name="email"/>
</label>
</div>
<div>
<select value={this.state.gender} onChange={this.handleSubmit}>
<option name="male"> Male</option>
<option name="female">Female</option>
</select>
</div>
<input type="submit" value="Submit" />
</form>
당신은 설정 value
의를 select
상태로 있지만 새 값을 선택하면 상태를 변경하지 마십시오. 당신은 필요 setState
값이이 DOM에 반영있어 너무 변경 후 :
class Example extends React.Component {
constructor() {
super();
this.state = { gender: "male" };
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
this.setState({ gender: e.target.value });
}
render() {
return (
<select value={this.state.gender} onChange={this.handleChange}>
<option name="male"> Male</option>
<option name="female">Female</option>
</select>
);
}
}
ReactDOM.render(<Example />, document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다