您可以使用一個控制輸入或不受控制輸入。下面是每個解決方案的示例。
之前,我張貼,雖然,讓我增加一些有用的提示&鏈接給你:
解決方案
控制
添加這是每次選擇一個單選按鈕切換時的狀態變量。喜歡的東西:
constructor() {
super();
this.state = {checkedRadio: null};
}
changeRadio(e) {
this.setState(checkedRadio: e.target.value);
}
var options = [{id:1,nm:"Appointment fixed"},{id:2,nm:"Call later"},{id:3,nm:"Wrong number"},{id:4,nm:"Don't call again"},{id:5,nm:"Call later"}];
{options.map((item,i) => {
return (
<div key={item.id} onChange={(i)=>this.callOptions(i)}>
<label className="radio-inline"><input type="radio" checked={this.state.checkedRadio == i} ref={(el) => this["myRadioRef" + i] = el} value={item.id} onChange={this.changeRadio} />{item.nm}</label>
</div>
);
})}
不受控制
另一種選擇是使用不受控制的輸入。您需要對現有代碼進行的操作是在您的輸入中添加一個name
道具。因此,像:
var options = [{id:1,nm:"Appointment fixed"},{id:2,nm:"Call later"},{id:3,nm:"Wrong number"},{id:4,nm:"Don't call again"},{id:5,nm:"Call later"}];
{options.map((item,i) => {
return (
<div key={item.id} onChange={(i)=>this.callOptions(i)}>
<label className="radio-inline"><input type="radio" name="myRadio" ref={(el) => this["myRadioRef" + i] = el} value={item.id} onChange={this.changeRadio} />{item.nm}</label>
</div>
);
})}
你是說單擊某個按鈕應該取消選擇除選定按鈕以外的所有按鈕或所有按鈕? – Slepz
請看看我更新的答案。我已經添加了一些其他未完成的細節。 – Chris