169 похожих чатов

Привет , помогите решить 1 проблему - я сделал

из 1 инпута 6 кругов (для подтверждения почты кодом ) и пытаюсь сделать так что бы при нажатии на любой все равно начинало вписивать с 1 ,но не работает ,почему? const [code, setCode] = useState(['', '', '', '', '', '']);
const inputRefs = Array(6).fill(0).map((_, i) => React.createRef());

const handleInputChange = (e, index) => {
const value = e.target.value;
if (/^\d*$/.test(value) && value.length <= 1) {
const newCode = [...code];
newCode[index] = value;
setCode(newCode);
if (value !== '' && index < 5) {
inputRefs[index + 1].current.focus();
}
}
};

const handleKeyDown = (e, index) => {
if (e.key === 'Backspace' && index > 0 && code[index] === '') {
const newCode = [...code];
newCode[index - 1] = '';
setCode(newCode);
inputRefs[index - 1].current.focus();
}
};

const isCodeComplete = code.every((digit) => digit !== '');
const doneButtonClass = isCodeComplete ? 'done-button-green' : 'done-button';

const handleFirstCircleClick = () => {
inputRefs[0].current.focus();
}; <div className="circle-code-input">
<div className="circle" onClick={handleFirstCircleClick}>
{code[0]}
<input
ref={inputRefs[0]}
type="text"
value={code[0]}
onChange={(e) => handleInputChange(e, 0)}
onKeyDown={(e) => handleKeyDown(e, 0)}
/>
</div>
{code.slice(1).map((digit, index) => (
<div key={index} className="circle">
{digit}
<input
ref={inputRefs[index + 1]}
type="text"
value={digit}
onChange={(e) => handleInputChange(e, index + 1)}
onKeyDown={(e) => handleKeyDown(e, index + 1)}
/>
</div>
))}


</div>

1 ответов

9 просмотров
Kababik-st Автор вопроса

Я вроде как написал фокус на 1 круг - const handleFirstCircleClick = () => { inputRefs[0].current.focus(); но все равно не работает

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Народ поскажите хороший туториал как написать программу-службу Лазарем?
Alexander
6
Карта сайта