React - TypeError: Невозможно прочитать свойство 'setState' из неопределенного - PullRequest
0 голосов
/ 30 марта 2020

Я не могу понять, что не так с моим кодом.

import React from 'react';
import './App.css';

class Clock extends React.Component 
{
    constructor(props)
    {
        super(props);
        //defining state
        this.state={date:new Date()};
    }

    updateTime()
    {
        //updating the time by set state
        this.setState( (state,props) =>  {date:new Date()}  );
    }

    render()
    {
        return (
            <div>
                <h2>Now the time is {this.state.date.toLocaleTimeString()}</h2>
                <button onClick={this.updateTime}>Update Time</button>
        
            </div>
        );
    }
}
export default Clock;

Ошибка ниже при обновлении состояния, то есть при нажатии кнопки.

TypeError: Невозможно прочитать свойство 'setState' неопределенного updateTime
C: / Users / YV / YVSCodes / React-Van / hi-app / src / setState-event-binding-exampleComponent. js: 21
18 | updateTime () 19 | {20 | // обновляем время по установленному состоянию

21 | this.setState ((state, props) => {date: new Date ()});

1 Ответ

0 голосов
/ 30 марта 2020

Вам необходимо привязать updateTime

constructor(props) {
   ...
   this.updateTime = this.updateTime.bind(this)
}

или использовать функцию стрелки

updateTime = () => {
    //updating the time by set state
    this.setState( (state,props) =>  {date:new Date()}  );
}

и изменить setState на

this.setState({
  date: new Date()
});

или

this.setState( (state,props) =>  ({date:new Date()})  );
...