REACT.js初始无线电选择

时间:2017-10-23 07:16:29

标签: reactjs radiobuttonlist

我一直试图通过添加一些新功能来修改现有代码。 我有这个函数,它根据变量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事件操作无线电选择,即下拉菜单?

1 个答案:

答案 0 :(得分:0)

回答我的问题我有两个要求:在构造函数中需要添加以下this.props.handleFieldChange( 'id', 'radio_button_group_name', 'value_of_the_output_that_should_be_selected' );

这将在循环中选择特定的无线电。