Хотите перейти на первую страницу при нажатии кнопки

#reactjs #antd

#reactjs #antd

Вопрос:

В моем компоненте таблицы мои параметры разбивки на страницы выглядят следующим образом :

  <Table scroll={{ y: records.length>50?'calc(100vh - 175px)':'calc(100vh - 130px)' }}
            pagination={{hideOnSinglePage:true,defaultPageSize:50,pageSizeOptions:['50','100','500'], showTotal:(total,range) => `${range[0]} to ${range[1]} of ${total} groups`}}
            columns={columns} 
            dataSource={records} />
 

Если я перейду на вторую страницу или другую,
введите описание изображения здесь

оттуда я нажимаю кнопку (например: добавить). Я хочу вернуться к первой странице. Как это возможно?

Комментарии:

1. вы пытались манипулировать onChange?

2. Но как?? При замене кнопки добавить мы хотим установить значение. Какое значение и какую переменную следует установить для этого при изменении?

Ответ №1:

Одно из решений — сделать его контролируемой нумерацией страниц

 class App extends React.Component {
  state = {
    currentPage: 1
  };

  handleChange = (page) => {
    this.setState({
      currentPage: page
    });
  };

  render() {
    return (
      <div>
        <div style={{ marginBottom: 16 }}>
          {/* back to page one when clicked */}
          <Button type="primary" onClick={() => this.handleChange(1)}>
            Add
          </Button>
        </div>
        <Table
          columns={columns}
          dataSource={data}
          pagination={{
            current: this.state.currentPage, //newly added
            onChange: this.handleChange, //newly added
            hideOnSinglePage: true,
            defaultPageSize: 50,
            pageSizeOptions: ["50", "100", "500"],
            showTotal: (total, range) =>
              `${range[0]} to ${range[1]} of ${total} groups`,
            position: ["topRight", "bottomRight"]
          }}
        />
      </div>
    );
  }
}
 

Смотрите рабочий пример здесь:

Редактировать

Комментарии:

1. Как я могу выполнить ту же логику без реактивных перехватов?

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