Попытка добавить переключатель и выбрать только одну кнопку за раз - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь добавить еще один переключатель и заставить пользователя выбирать только по одному за раз.

Я не хочу менять _onChangeIsConfig. Что я могу изменить в своем коде, чтобы кнопка работала без изменения _onChangeIsConfig

_onChangeIsConfig(event){
      FirmwareUpgradeDialogActions.updateState('isConfig', event.target.checked);

    }

<FormControlLabel
    control={
       <Radio
       checked={this.state.isConfig === 'firmware-isconfig'}
       onChange={this._onChangeIsConfig}
       value="firmware-isconfig"
          />
         }
     label={this.context.intl.formatMessage({id: 'network.isconfig'})}
                                   />

    <FormControlLabel
         control={
            <Radio

          checked={this.state.isConfig === 'firmware-image-isconfig'}

           onChange={this._onChangeIsConfig}
           value="firmware-image-isconfig"
        />
    }

1 Ответ

0 голосов
/ 18 апреля 2019

Ну, так как вам нужно довольно бинарное состояние (вы не можете сделать намного больше, если сохраните только один логический флаг), тогда измените свой jsx следующим образом:

<FormControlLabel
    control={
       <Radio
           checked={!!this.state.isConfig}
           onChange={this._onChangeIsConfig}
           value="firmware-isconfig"
           />
    }
    label={this.context.intl.formatMessage({id: 'network.isconfig'})}
/>

<FormControlLabel
     control={
        <Radio
            checked={!this.state.isConfig}
            onChange={() => this._onChangeIsConfig( { target: { checked: false } } )}
            value="firmware-image-isconfig"
        />
     }
 />

Это даст вам любой из2 радиоуправления всегда проверяли, как вы справитесь с этим потом, будет зависеть от вас.Однако у вас больше не будет возможности, если вы не хотите менять способ обновления своего состояния

...