Реакттеги селекттин value атрибуттары

Эми биздин option тегдерибизде value атрибуттары бар дейли:

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

Мындай учурда, value атрибуттарынын бар болушунан улам, стейтке так алардын маанилери кирип, option тегдеринин тексттери эмес. Муну тандоонун натыйжасын абзацка чыгарып көрүү менен ынана аласыз:

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}
    </p>
  </div>;
}

option текстин жана анын маанисин бөлүү ыңгайлуу болушу мүмкүн: тегдин текстин биз каалагандай өзгөртө алабыз, ал эми биздин скриптте тандоонун натыйжасы value атрибутунун мааниси боюнча иштетилет, ал өзгөрбөй калат.

Мисалды караңыз:

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' && 'сиз биринчи пунктту тандадыңыз'}
      {value === '2' && 'сиз экинчи пунктту тандадыңыз'}
      {value === '3' && 'сиз үчүнчү пунктту тандадыңыз'}
    </p>
  </div>;
}

Эми, эгерде биз option тегдеринин тексттерин өзгөртсөк, скрипттин иши бузулбайт - анткени ал value атрибутунун маанисине байланыштуу.

Задание 1

Төмөндө түшүүчү тизме менен колдонуучуга кайсы жаш топко кирериңизди сураңыз: 0дон 12 жашка чейин, 13төн 17ке чейин, 18ден 25ке чейин, же андан жогору 25 жаш.