React да селектларда 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 ёшдан катта.