> Почему в React компоненте при вводе текста последний символ пропадает (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: IT-One
Стек: React
> Пример ответа
Скорее всего, вы используете неконтролируемый компонент (uncontrolled component) с defaultValue, а не контролируемый с value и onChange. В React, если вы задаёте value для <input> без обработчика onChange, компонент становится контролируемым, но React блокирует обновление состояния - ввод текста не синхронизируется, и последний символ может «пропадать» при ререндере.
Решение: Используйте контролируемый компонент с явным управлением состоянием:
JSXconst [text, setText] = useState('');return <input value={text} onChange={(e) => setText(e.target.value)} />;
Если же вы используете defaultValue, то значение устанавливается только при монтировании, и React не отслеживает изменения - в таком случае последний символ не пропадает, но вы теряете контроль над значением. Убедитесь, что вы не смешиваете value и defaultValue в одном инпуте.
> Похожие задачи по frontend
Какие уязвимости или баги известны у React хука useEffect и как получить неожиданное поведение
Какие триггеры вызывают перерисовку React компонента
Как правильно использовать useState и useEffect в кастомном хуке для хранения данных и ошибок
Нужно ли добавлять Promise к выходному типу асинхронной функции в TypeScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью