Задать вопрос
@Rapen

Как вызываются свои методы в компонентах React?

Имеется следующий код, есть компонент, в котором два метода componentDidMount, componentWillUnmount, один циклично обновляет состояние, другой перестает обновлять, как они срабатывают, если явно не вызываются. Код - создает время, и постоянно обновляет состояние времени.
class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = {date: new Date()};
  }

  componentDidMount() {
    this.timerID = setInterval(
      () => this.tick(),
      1000
    );
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

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

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

ReactDOM.render(
  <Clock />,
  document.getElementById('root')
);
  • Вопрос задан
  • 175 просмотров
Подписаться 2 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
fnnzzz
@fnnzzz
front-end dev
tick вызывается каждую секунду, а в его теле есть setState, который после того как отработает, автоматически вызывает метод render(). Поэтому каждую секунду происходит ререндер вашего компонента
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы