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 ответов

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта