Atributos value em select no React

Suponha que agora nossas tags option tenham atributos value:

jsxfunction App() {
  return <div>
    <select>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
  </div>;
}

Nesse caso, devido à presença dos atributos value, serão os seus valores que irão para o estado, e não os textos das tags option. Podemos verificar isso, exibindo o resultado da seleção em um parágrafo:

jsxfunction App() {
  const [value, setValue] = useState('');
  
  return <div>
    <select value={value} onChange={(event) => setValue(event.target.value)}>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
    <p>
      sua escolha: {value}
    </p>
  </div>;
}

Separar o texto do option e seu valor pode ser conveniente: podemos alterar o texto da tag como quisermos, enquanto em nosso script o resultado da seleção será processado pelo valor do atributo value, que permanecerá inalterado.

Veja o exemplo:

jsxfunction App() {
  const [value, setValue] = useState('');
  
  return <div>
    <select value={value} onChange={event => setValue(event.target.value)}>
      <option value="1">text1</option>
      <option value="2">text2</option>
      <option value="3">text3</option>
    </select>
    <p>
      {value === '1' && 'você escolheu a primeira opção'}
      {value === '2' && 'você escolheu a segunda opção'}
      {value === '3' && 'você escolheu a terceira opção'}
    </p>
  </div>;
}

Agora, se alterarmos os textos das tags option, o funcionamento do script não será quebrado - porque ele está vinculado ao valor do atributo value.

Задание 1

Usando uma lista suspensa, peça ao usuário para escolher a qual faixa etária ele pertence: de 0 a 12 anos, de 13 a 17, de 18 a 25, ou acima de 25 anos.