Показывать предупреждение, когда пользователь перестает печатать в ReactJS

Я хочу показать предупреждающее сообщение в ReactJS, когда пользователь перестанет вводить текст в поле формы.

Вам не нужно думать конкретно о реакции в этой ситуации. Это должно быть сделано с помощью чистого js со слушателем в поле ввода.

DJ Yadav 03.04.2019 22:03

Конечно, это не будет проблемой. Если это можно сделать на чистом JS. все будет хорошо

Jon 03.04.2019 22:04

Вот так: <input type = "text" onblur = "alert('x')">

DJ Yadav 03.04.2019 22:05

Вы имеете в виду диалоговое окно предупреждения, это будет не очень приятный пользовательский интерфейс. Если вы имеете в виду какую-то форму информационного окна предупреждения, это было бы не так уж плохо.

Keith 03.04.2019 22:06

Я имею в виду, когда пользователь перестал печатать, я хочу отобразить предупреждающее сообщение

Jon 03.04.2019 22:06

Это должно дать вам ответ, как говорили другие, это не относится к React: stackoverflow.com/questions/1909441/…

Joru 03.04.2019 22:09

@Joru, да, потому что все ответы даются через Jquery

Jon 03.04.2019 22:13

@ Джон, тебе нужна только первая часть этого ответа - функция delay. Это будет ваш обработчик событий React.

Joru 03.04.2019 22:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
8
3 645
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Этот может вам помочь.

Такого рода функции не специфичны для React, поэтому вы можете добиться этого разными способами с помощью JS.

Простой компонент:

    class App extends Component {
      typingTimer = null;

     handleChangeEvent = (evt) => {
       const val = evt.target.value;
       clearTimeout(this.typingTimer);
       this.typingTimer = setTimeout(() => {
        if (val) {
          window.alert('Stopped typing !');
        }
       }, 500);
     }
     componentWillUnmount() {
       clearTimeout(this.typingTimer);
     }
      render() {
        return (
          <div>
            <input onChange = {this.handleChangeEvent} /> 
          </div>
        );
      }
    }

Основное содержание вашего ответа находится по вашей ссылке. Чтобы сделать ваш ответ надежным, скопируйте соответствующую информацию из вашей ссылки в свой ответ..

Conspicuous Compiler 03.04.2019 22:44

Замечательно. Спасибо за улучшение @AbdelkarimELAMEL.

Conspicuous Compiler 03.04.2019 23:05

@AbdelkarimELAMEL . Не могли бы вы помочь мне, как остановить оповещение, когда пользователь удаляет текст из ввода. Здесь, когда я остановился, предупреждение о наборе текста работает нормально, но когда я удаляю текст из ввода, оно возникает снова. Я просто хочу показать предупреждение о прекращении ввода, а не как текст, удаленный пользователем.

Jon 04.04.2019 18:33

Здесь я создал функциональный компонент React для собственного использования.

const App = () => {
  let typingTimer = null;

  const makeAnApiCall =(inputValue) => {
        console.info("Making an Ajax Call");
        window.alert('Making an Ajax Call');
    }
  
  const handleChangeEvent = (evt) => {
    const val = evt.target.value;
    clearTimeout(typingTimer);
    typingTimer = setTimeout(() => {
      if (val) {
        makeAnApiCall(val)
      }
    }, 500);
  }

  useEffect(() => {
    return () => {
      clearTimeout(typingTimer);
    }
  }, [])

    return (
      <div>
        <input type = "text" onChange = {handleChangeEvent} /> 
      </div>
    );
}

Демонстрация Workgin на стекблиц

Другие вопросы по теме