如何复制 react-table 的状态以使用 page 和 pageSize 的值

How copy state of react-table to use value of page and pageSize

提问人:kuka 提问时间:3/26/2019 更新时间:3/28/2019 访问量:2310

问:

我用 https://www.npmjs.com/package/react-table 库。必须通过列的筛选器获取表的数据。 在下面筛选:

      ...
      filterable: true,
      Filter: () => {
        return (
          <input
            ...
            onChange={e => this.handleSearchInput(e)}
          />
        );
      }

handleSearchInput 方法调用请求到服务器

    let params = {
      filter_fields: this.state.filter, 
      page_size: this.state.pageSize, //here should be state of a table 
      page: this.state.page  // e.g. **state.page** and state - should be arguments
    };
    Actions.getMUsers(params)...

那么应该如何从 ReactTable 组件同步 page 和 pageSize 值以在请求正文中使用它

JavaScript ReactJS 分页 服务器端 React-Table

评论


答:

4赞 Richard Stoeffel 3/26/2019 #1

假设您拥有并且处于初始组件状态,您可以使用一些 ReactTable 的内置 props 来处理页面大小更改和页面更改:pageSizepage

<ReactTable
    pageSizeOptions={this.state.pageSizeOptions} //Don't need this if you don't want it
    defaultPageSize={this.state.pageSize} // probably smart to have if you're using this as part of a query but not neccessary
    pageSize={this.state.pageSize}
    page={this.state.page}
    onPageChange={page => this.setState({page: page})
    onPageSizeChange={(pageSize, page) => {
      this.setState({ pageSize: pageSize, page: page });
    }}
    ...otherProps
/>

要记住的一些重要事情是,如果要更新 and 函数,还必须手动处理 page 和 pageSize 属性(只需将它们设置为状态值,如上所示)onPageChangeonPageSizeChange

同样如上所示,您可以为它提供要包含的页面大小选项列表,并通过使用值初始化状态变量(例如pageSize25)

评论

0赞 kuka 3/26/2019
this.state.checkPageSize 中应该包含什么?
0赞 Richard Stoeffel 3/28/2019
对不起,我的错,那应该只是pageSize,我已经更新了我的答案