Как создать событие click в ul, li или div в реагировать

Я пытаюсь отключить событие click в компоненте actjs, но оно не работает. Я попытался это безуспешно в div, ul, li и даже кнопка. У меня есть демо здесь

Я посмотрел на этот вопрос, но проблема не та, с которой я сталкиваюсь, как видно из демонстрации выше

2 ответа

Решение

onClick принимает функцию и будет записана как

<button onClick={() => {console.log("Hi")}}>Hello</button>

или же

handleClick() {
    console.log('Hi');
}
<button onClick={this.handleClick}>Hello</button>

вместо

<button onClick={console.log("Hi")}>Hello</button>

Если ты пишешь onClick={console.log("Hi")}, на каждой render значение для onClick оценивается и, следовательно, Hi видно на console

Вы должны предоставить функцию в обработчике событий, а не вызывать ее. Увидеть:

import React from "react";
import { render } from "react-dom";

const App = () => (
  <div>
    <div>
      <button onClick={() => {console.log("Hi")}}>Hello</button>
    </div>
  </div>
);

render(<App />, document.getElementById("root"));
Другие вопросы по тегам