#javascript #reactjs #typescript #next.js #state
Вопрос:
У меня есть проект с nextjs и сценарием ввода. У меня есть пользовательский компонент select, который отображал ввод select, я хочу, чтобы при открытии ввода select я показал вспомогательный значок (например,^), а при закрытии компонента select я показал другой вспомогательный значок (например,amp;). Я пишу логическое состояние, и событие onClick изменяет мое состояние, но это не работает корректно. Это событие срабатывает при выборе открытия и закрытия ввода, но я хочу, чтобы это событие срабатывало при выборе открытия или закрытия ввода В других словах onOpenEvent и onCloseEvent в моем выборе ввода.
это мое состояние и моя функция, которая изменила состояние
const [isOpenInputSelect,setIsOpenInputSelect]= useState(false);
const test= () => {
setIsOpenInputSelect((prevState) => !prevState);
}
<Select name='birth-date'id='birth-date'onClick={test}
helperIcon={ isOpenInputSelect?<Icon name='arrow-bottom' />
:<Icon name='arrow-top' /> }>
<option value="12">12</option>
<option selected={true} value="13">13</option>
</Select>
Я был бы очень признателен, если бы кто-нибудь мог мне помочь
Комментарии:
1. Это
<Select>
компонент, который вы создали сами, или он из библиотеки?2. @ЭлдарБ. Я создал этот компонент
3. @Poldark Не могли бы вы, пожалуйста, показать нам код вашего
Select
компонента?4. я не могу получить доступ к этому сейчас. мне нужно только событие для открытия или закрытия. выберите input.eg(при выборе ввода открыт console.log («открыть») и при выборе ввода закрыт console.log («закрыт»)) Событие onClick не может мне помочь @juliomalves
5. Вы имеете в виду, что вы также хотите
test
участвовать вselect
onChange
мероприятии?
Ответ №1:
Ну, я думаю, что вы можете просто достичь этого, просто отрицая свое текущее состояние, например
const [isOpenInputSelect,setIsOpenInputSelect]= useState(false);
const test= () => {
setIsOpenInputSelect(!this.state.isOpenInputSelect);
}
Попробуйте, чтобы это работало на вас. Спасибо