onPageSizeChange в реагирует дает старое значение - PullRequest
1 голос
/ 03 ноября 2019

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

  <ReactTable filterable columns={this.getTableColumns()} data={items} showPagination ={true}
                 onPageChange={this.onPageChange} defaultPageSize={5} onPageSizeChange={(pageSize,pageIndex) => {
                    this.setState({ pageSize});
                    alert("this.state.pageSize" + this.state.pageSize);
                  }}

При изменении страницы с 20 на 25 я получаю размер страницы как 20, но я хочу текущий выбранный размер страницы

Ответы [ 2 ]

2 голосов
/ 03 ноября 2019

Если вы ссылаетесь на этот код:

this.setState({ pageSize});
alert("this.state.pageSize" + this.state.pageSize);

это потому, что setState является асинхронным. И в alert вы не увидите последнее значение сразу.

0 голосов
/ 03 ноября 2019

С Реагировать на документы

setState () не всегда сразу обновляет компонент. Это может пакетировать или отложить обновление до позже. Это делает чтение this.state сразу после вызова setState () потенциальной ловушкой. Вместо этого, используйте componentDidUpdate или обратный вызов setState (setState (Updater, callback)), любой из которых гарантированно сработает после применения обновления.

, так что вы можете сделать это как this.setState({pageSize}, () => alert("this.state.pageSize" + this.state.pageSize);)

...