Невозможно перейти на следующую страницу после разбиения на страницы на стороне сервера - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь реализовать нумерацию страниц как для интерфейса, так и для интерфейса.В интерфейсе у меня есть:

    private fetchOrders = async (prevProps) => {
    if (!prevProps || this.props.location.pathname !== prevProps.location.pathname || this.props.location.search !== prevProps.location.search) {
        try {
            await this.props.fetchOrders(this.state.searchFilter, deparamSearch(this.props.location.search));
        } catch (error) {
            console.error(error);
            this.setState({ error });
        }
    }
}
private handlePageChange = (e, page) => {
    // for now this will reset the page count
    this.props.history.push(`${this.props.location.pathname}?page=${page + 1}&count=${this.props.count}`);
}

private handleCountChange = ({ target: { value } }) => {
    // for now this will reset the page count
    this.props.history.push(`${this.props.location.pathname}?page=1&count=${value}`);
}

, а затем в методе render:

<MuiTable
        padding="dense"
        data={pageData}
                    pagination={{ 
                        count: data ? data.length : 0,
                        rowsPerPage: count,
                        page: page - 1, // 0-based
                        rowsPerPageOptions: [10, 25, 100, 500],
                        onChangePage: this.handlePageChange, //  this.props.history.push(`${this.props.location.pathname}?page=1&sort=${this.props.sort}&count=${value}`),
                        onChangeRowsPerPage: this.handleCountChange, // this.setState({ perPage: e.target.value }),
                    }}
                    columns={[
                        {

const mapStateToProps = (state , props) => {
const search: any = deparamSearch(props.location.search);

return {
    orders: (state.orders.list || []),
    page: Number.parseInt(search.page || 1),
    count: search.count || 10,
};
};

, а в конце:

     return dslContext.select(...
.
.
.
                .limit(query.count().orElse(defaultCount))
                .offset(((query.page().orElse(1) - 1) * query.count().orElse(defaultCount))+1)  //TODO: Rey: use count and page with limit and offset
                .fetch()

Проблема в том, что он не может получить какие-либо данные.Если я удалю .offset(((query.page().orElse(1) - 1) * query.count().orElse(defaultCount))+1) , я увижу некоторые данные (конечно, без использования правильного смещения), но я не могу перейти на следующую страницу.Я не уверен, что могу использовать нумерацию страниц на стороне сервера с использованием пользовательского интерфейса материала.

...