Вам необходимо использовать состояние для сохранения выбранной опции. Когда значением состояния является maryA, тогда показывать showThisDiv
. Нет необходимости использовать id="showThisDiv"
.
const Student = ({key}) = > {
const [selected, setSelected] = useState()
const handleChange = (event) => {
setSelected(event.target.value)
}
return (
<React.Fragment>
<div>
<select value={selected} onChange={handleChange}>
<option value="markJ">Mark J.</option>
<option value="maryA">Marry A.</option>
<option value="peterM">Peter M</option>
</select>
</div>
{selected === 'maryA' && <div id="showThisDiv">
<input type="text" placeholder="age" />
</div>}
</React.Fragment>
);
};
export default Student
Если вам нужно выбрать множественный , вы можете использовать следующий код:
const Student = ({key}) = > {
const [selected, setSelected] = useState()
const handleChange = (event) => {
const newSelectedOptions = [...event.target.options].filter(o => o.selected).map(o => o.value);
setSelected(newSelectedOptions)
}
return (
<React.Fragment>
<div>
<select value={selected} onChange={handleChange} multiple>
<option value="markJ">Mark J.</option>
<option value="maryA">Marry A.</option>
<option value="peterM">Peter M</option>
</select>
</div>
{selected.includes("maryA") && <div id="showThisDiv">
<input type="text" placeholder="age" />
</div>}
</React.Fragment>
);
};
export default Student