@LoranDeMarcus

Как выйти из бесконечного ререндера?

При blur хочу чтобы выполнилась функция blurEvent, она выполняется но потом уходит в бесконечный цикл из-за inputRef.current.blur();. Но мне надо как-то выйти из фокуса инпута. Как можно решить эту проблему?
const inputRef = React.useRef(null);
  const blurEvent= () => {
    inputRef.current.focus({
      cursor: 'start',
    })
    inputRef.current.blur();
  }
<Input
     placeholder="Name"
     required
     ref={inputRef}
     onBlur={blurEvent}
 />
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@BananaSupchik
Надеюсь заработает
let isMyBlur = false;
const inputRef = React.useRef(null);
  const blurEvent= () => {
    if(!isMyBlur){
      inputRef.current.focus({
          cursor: 'start',
      })
      isMyBlur = true;
      inputRef.current.blur();
     }
     isMyBlur = false;
  }
<Input
     placeholder="Name"
     required
     ref={inputRef}
     onBlur={blurEvent}
 />
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы