我一直试图通过添加一些新功能来修改现有代码。
我有这个函数,它根据变量ACCREDITATION_TYPES
呈现一组radiobuttons:
createRadioCalibration(name) {
const { id, value, labels } = this.props;
const _t = this.props.intl.formatMessage;
const ACCREDITATION_TYPES = [
[CALIBRATION_ACCREDITED, _t(messages.calibrationAccredited)],
[CALIBRATION_NOT_ACCREDITED, _t(messages.calibrationNotAccredited)]
];
return <FormChoiceGroup
type = "radio"
values = {ACCREDITATION_TYPES.map(mapValueArray)}
key = {`${id}_${name}`}
name = {`${id}_${name}`}
value = {value[name]}
handleChange = {this.handleFieldChangeFn(name)}
/>;
}
默认情况下,无线电都是未选中的。单击此功能时会激活:
handleFieldChangeFn(name) {
return (e) => {
const { handleFieldChange, id } = this.props;
handleFieldChange(id, name, e.target.value);
};
}
表单呈现如下:
render () {
const FIELDS = {
[CALIBRATION]: this.createRadioCalibration(CALIBRATION),
};
return (
<div className="">
<label>{_t(messages.calibration)}</label>
{ FIELDS[CALIBRATION] }
如何选择我想要的任何选项作为初始状态?现在只有两种选择,但如果有五种选择呢?
另外,如何根据表单中其他元素的onChange
事件操作无线电选择,即下拉菜单?
答案 0 :(得分:0)
回答我的问题我有两个要求:在构造函数中需要添加以下this.props.handleFieldChange( 'id', 'radio_button_group_name', 'value_of_the_output_that_should_be_selected' );
这将在循环中选择特定的无线电。