[英]how to load radio buttons dynamically and use check property in react js?
我正在嘗試為單選按鈕創建一個通用輸入字段,我將在我的項目中使用每當我需要在reactjs中的單選按鈕,所以我想知道如何動態傳遞單選按鈕,以便默認情況下檢查第一個元素以及如何在map函數中使用checked屬性
render() {
var self = this;
return(
<div>
{
self.props.options.map(function(option){
return <label key={option[self.props.id]}><input type="radio" className={self.props.className}
checked={?????} key={option[self.props.id]}
onChange={self.props.onChange} value={option[self.props.name]} />{option[self.props.name]}</label>
})
}
</div>
);
}
options是我傳遞給map函數的對象數組
任何幫助都會非常有幫助..
提前致謝 :)
您可以保持已檢查索引的狀態並將其初始化為0,並在onchange函數上將其更改為所選索引。
就像是 :
<div>
{ self.state.options.map(function(option,i){
return <label key={option[self.props.id]}>
<input type="radio"
className={self.props.className}
checked={i==self.state.checkedIndex}
key={option[self.props.id]}
onChange={self.onChange.bind(this,i)}
value={option[self.props.name]}
/>
{option[self.props.name]}
</label>
})
}
</div>
以及你的onchange功能
onChange = function(i) {
this.setState({checkedIndex : i})
}
你需要使用狀態。 用這個:
this.state={checked: 0}
onChange(i){
this.setState({
checked:index
});
}
render() {
return(
<div>
{
this.state.options.map((option,i)=>{
return <label key={option[this.props.id]}>
<input
type="radio"
className={this.props.className}
checked={this.state.checked == i? true: false}
key={option[this.props.id]}
onChange={this.onChange.bind(this,i)}
value={option[this.props.name]} />
{option[this.props.name]}
</label>
})
}
</div>
);
}
檢查工作小提琴: https : //jsfiddle.net/039eq8bx/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.