Передача переменной в setState - PullRequest
0 голосов
/ 20 марта 2019

Я новичок, чтобы реагировать.В моей программе пользователю предлагается нажать на кнопку, и в соответствии с этой кнопкой состояние изменяется.

Это отрендеренный раздел:

<button onClick={this.togglePage(2)}>Click Here</button>

Это частьbefore:

  constructor(props) {
    super(props);
    this.togglePage = this.togglePage.bind(this);

    this.state = {
      currentpage: 1,
    };
  }
  togglePage(page) {
    this.setState({
      currentpage: page,
    });
  }

Является ли способ передачи значения здесь правильным?Я получаю сообщение об ошибке «Максимальная глубина обновления превышена»

1 Ответ

2 голосов
/ 20 марта 2019

Вам нужно передать функцию, а не вызывать ее немедленно

 <button onClick={() => this.togglePage(2)}>Click Here</button>

Как написано в данный момент, вы вызываете togglePage при рендеринге, который вызывает обновление состояния и повторное рендеринг, создающий стек вызовов.

...