react的input的每一種類型都要綁定onChange事件的,綁定onChange事件要傳入事件對象的
react的單選框需要綁定checked屬性的
import React, { Component } from 'react'
class App extends Component {
constructor(props) {
super(props);
this.state = {
sex:"0" // 定義選中的值,如果為空字符串,則默認不選中
}
}
render() {
return (
<div>
<input type="radio" name="" value="0" checked={this.state.sex==0} onChange={(e)=>this.getValue(e)}/><label htmlFor="man">男</label>
<input type="radio" name="" value="1" checked={this.state.sex==1} onChange={(e)=>this.getValue(e)}/><label htmlFor="woman">女</label>
</div>
);
}
getValue=(event)=>{
//獲取單選框選中的值
console.log(event.target.value);
this.setState({
sex:event.target.value
})
}
}
export default App;
循環input選項的寫法:
import React, { Component } from 'react'
class App extends Component {
constructor(props) {
super(props);
this.state = {
items: ["星期一", "星期二", "星期三"],
item: "1"
}
}
render() {
return (
<div>
{
this.state.items.map((ele, index) => {
return (
<p key={index}>
{/* 如果控制台有警告 Expected '===' and instead saw '==' eqeqeq 不用改成三個等號 */}
<input type="radio" name="group" value={index} checked={this.state.item == index} onChange={(e) => this.getValue(e)} /><span>{ele}</span>
</p>
)
})
}
</div>
);
}
getValue = (e) => {
this.setState({
item: e.target.value
})
}
}
export default App;
