Запуск события React с помощью инструментов разработчика Chrome

Я хочу вызвать событие в инструментах разработчика Chrome, но я новичок в реагировании, мне труднее сделать это, чем в JS.

У меня есть такой пример:

class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: ''
    };

    this.handleChangeEvent = this.handleChangeEvent.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleChangeEvent(event) {
    this.setState({
      value: event.target.value
    });
  }

  handleSubmit(event) {
    alert('A name was submitted: ' + this.state.value);
    event.preventDefault();
  }

  render() {
    return ( <
      form onSubmit = {
        this.handleSubmit
      } >
      <
      label >
      Name:
      <
      input type = "text"
      value = {
        this.state.value
      }
      onChange = {
        this.handleChangeEvent
      }
      /> <
      /label> <
      input type = "submit"
      value = "Submit" / >
      <
      /form>
    );
  }
}

ReactDOM.render( <
  div > < NameForm / > < NameForm / > < /div>,
  document.getElementById('root')
);

//  doesn't work since v15.6.0
var ev = new Event('input', {
  bubbles: true
});
document.querySelector('form:first-child input').value = 'Not working';
document.querySelector('form:first-child input').dispatchEvent(ev);

var ev2 = new Event('input', {
  bubbles: true
});
ev2.simulated = true;
document.querySelector('form:last-child input').value = 'With simulated flag';
document.querySelector('form:last-child input').dispatchEvent(ev2);

Допустим, я хочу запустить в консоли что-то, что вызовет такое же действие, как если бы я нажал кнопку отправки, которая была JS-эквивалентом .click для этого элемента.

Как мне это сделать?

Обновлять: Предлагаемая ниже функция не сработала для меня, есть другие предложения?

как насчет componentDidMount() { window.myDebugCls = this }? затем вы можете вызвать методы в своем экземпляре класса реакции для этого компонента. Очевидно, это только для отладки :)

John Ruddell 12.12.2018 01:49

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

John Ruddell 12.12.2018 01:52

Извините, но я не понял, вы можете использовать мой пример? Вы говорите, что я должен в консоли Chrome Web Tools смонтировать класс, а затем вызвать функции обработчика?

John13 12.12.2018 23:01
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
3
687
0

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