Реагировать: как обрабатывать условие выбора

#reactjs

#reactjs

Вопрос:

Я новичок в React.

Мне нужно выполнить функцию, в которой, когда пользователь выбирает «C», все выбранные параметры будут C.

введите описание изображения здесь

Но проблемы здесь в том, что когда я выбираю «A», все значение также изменится на «A», и то же самое относится и к «B». Я хочу внести в него изменения только для «C».

Это часть моего кода

 handleChange = (value: any) => {
  this.setState({
    selectedAnswer: value,
  });
};

<label>Select First</label>
<Select 
  defaultValue={this.state.selectedAnswer} 
  value={this.state.selectedAnswer === "c" ? "c": this.state.selectedAnswer}
  onChange={this.handleChange}
>
   <Option value="a">A</Option>
   <Option value="b">B</Option>
   <Option value="c">C</Option>
</Select>

<label>Select Second</label>
<Select 
  defaultValue={this.state.selectedAnswer} 
  value={this.state.selectedAnswer === "c" ? "c": this.state.selectedAnswer}
  onChange={this.handleChange}
>
   <Option value="a">A</Option>
   <Option value="b">B</Option>
   <Option value="c">C</Option>
</Select>

<label>Select Third</label>
 <Select 
      defaultValue={this.state.selectedAnswer} 
      value={this.state.selectedAnswer === "c" ? "c": this.state.selectedAnswer}
      onChange={this.handleChange}
    >
   <Option value="a">A</Option>
   <Option value="b">B</Option>
   <Option value="c">C</Option>
</Select>
 

Очень признателен, если кто-нибудь может мне помочь в этом.

Ответ №1:

вы используете this.state.selectedAnswer для выпадающего списка all , поэтому он изменит значение выпадающего списка all . Попробуйте использовать другую переменную, как показано ниже.

 handleChange = (value: any) => {
   this.setState({
    selectedAnswer: value,
    selC:value === 'c' ? 'c' : '' //if c is not selected then reset the dropdown(in my exapmle it would be select)
    
  });
};

<label>Select First</label>
<select 
  defaultValue={this.state.selectedAnswer} 
  value={this.state.selectedAnswer === "c" ? "c": this.state.selectedAnswer}
  onChange={this.handleChange}
>
   <option value="a">A</option>
   <option value="b">B</option>
   <option value="c">C</option>
</select>

<label>Select Second</label>

<select 
  value={this.state.selC}
  onChange={this.handleChange}
>
  <option>Select</option>
   <option value="a">A</option>
   <option value="b">B</option>
   <option value="c">C</option>
</select>

<label>Select Third</label>
 <select 
     
      value={this.state.selC}
      onChange={this.handleChange}
    >
      <option>Select</option>
   <option value="a">A</option>
   <option value="b">B</option>
   <option value="c">C</option>
</select>