Функция handleclick не работает

У меня есть функция handleclick, но она не вызывается при нажатии.

Вот код:

<div className = "cal">

      <input type = "num" name = "res" value = "0" handleClick = {this.handleclick}  disabled style = {{height:'8vh',width:'47vh',backgroundColor:'black',color:'white'}}/><br></br>
      <input type = "button" name = "ac" handleClick = {this.handleclick} value = "AC" style = {{height:'5vh',width:'12vh',backgroundColor:'#ccced1',border:'1px solid black'}}/>
      <input type = "button" name = "+/-" handleClick = {this.handleclick} value = "+/-" style = {{height:'5vh',width:'12vh',backgroundColor:'#ccced1',border:'1px solid black'}}/>
      <input type = "button" name = "%" handleClick = {this.handleclick} value = "%" style = {{height:'5vh',width:'12vh',backgroundColor:'#ccced1',border:'1px solid black'}}/>
      <input type = "button" name = "/" handleClick = {this.handleclick} value = "/" style = {{height:'5vh',width:'12vh',backgroundColor:'#ff9100',border:'1px solid black'}}/>
</div>

И вот моя функция:

handleclick(e)
{    e.preventDefault();

    this.setState({value:e.target.value});
    console.info('helo click fire');
}
onClick = {this.handleclick}?
dfsq 17.04.2018 22:27
fun! = function. Мы не взимаем плату по персонажам, поэтому не бойтесь использовать полные слова / предложения.
Drise 17.04.2018 23:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
2
969
2

Ответы 2

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

this.handleclick = this.handleclick.bind(this)

А затем в вашем вводе:

onClick = {this.handleclick}

Похоже нужно привязать функцию щелчка.

Обновите свою функцию до:

handleclick = (e) => {
    e.preventDefault();
    this.setState({value:e.target.value});
    console.info('helo click fire');
}

А затем в своем компоненте вы должны уметь:

<input type = "button" name = "+/-" handleClick = {(e) => this.handleclick(e)} value = "+/-" style = {{height:'5vh',width:'12vh',backgroundColor:'#ccced1',border:'1px solid black'}}/>

Обратите внимание на разницу между:

handleClick = {this.handleClick}

а также

handleClick = {(e) => this.handleClick(e)}

Вы также можете попробовать

onClick = {(e) => this.handleClick(e)}

поскольку я не думаю, что handleClick является допустимым свойством ввода / кнопки.

он работает, но как я могу получить значение, если я нажал кнопку со значением = "2" ??

ahmad bilal 17.04.2018 22:40

Я установил состояние, как я упоминал выше, но это дает мне ошибку непрочитанного свойства цели или что-то вроде этого

ahmad bilal 17.04.2018 22:41

Вы пробовали пройти мероприятие? (e) => this.handleClick(e)

Jamie Halvorson 17.04.2018 22:42

да handleclick (e) {this.setState ({значение: e.target.value}); console.info ('helo click fire'); } но это дает мне ошибку, подобную этой. Невозможно прочитать свойство target of undefined, и если я прокомментирую setstate, он отлично работает

ahmad bilal 17.04.2018 22:44

Я обновил свой ответ, чтобы показать вам, что я имею в виду, если вы быстро посмотрите на него, это должно быть ясно. Я имею в виду передачу события через функцию onClick, например <input type = "button" name = "+/-" onClick = {(e) => this.handleclick(e)} value = "+/-" style = {{height:'5vh',width:'12vh',backgroundColor:'#ccced1',‌​border:'1px solid black'}}/>

Jamie Halvorson 17.04.2018 22:46

да, я пытался передать событие, но он все еще дает мне ошибку tagert не может прочитать

ahmad bilal 17.04.2018 22:54

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