- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 react-paginate 进行分页,我在同一页面上有两个实例。一个在顶部,一个在底部,当收到新的 Prop 时,只有顶部的一个被重新渲染。下面是代码,我已经检查了组件上的不同生命周期方法,如果它接收到新的 Prop 并调用了渲染方法,一切似乎都在工作,但在页面中只有顶部分页有效,这意味着如果我点击第 2 页,第二个实例应该也更改为第 2 页,因为它收到了所选页面的新值。有什么想法吗?
import React from 'react';
import ReactPaginate from 'react-paginate';
export default class Pager extends React.Component {
constructor() {
super();
}
render() {
return (
<div className={`pager ${this.props.position}`}>
<ReactPaginate
previousLabel={'Prev'}
nextLabel = {'Next'}
breakLabel = {<a href="">...</a>}
breakClassName = {"break-me"}
pageCount = {this.props.totalPages}
marginPagesDisplayed ={1}
pageRangeDisplayed={2}
onPageChange = {this.props.onPageNumberClick}
containerClassName = {"page-links-container"}
pageLinkClassName = {"pg-links"}
activeClassName = {"active"}
previousClassName = {"prev-pg-lnk"}
nextClassName = {"next-pg-lnk"}
disabledClassName = {"disabled"}
initialPage = {parseInt(this.props.selectedPage) -1}
/>
</div>
);
}
}
最佳答案
您必须使用 forcePage
属性来同步这两个分页。
因此,一旦页面发生更改,在 onPageChange
回调中,您将使用更新后的页码更新包装器组件(包含两个分页组件)的状态。要使两个分页同步工作 - 您必须将 forcePage
设置为等于包装器的状态 selected
页码。
我已经使用 plugin's official demo 在本地对其进行了测试.下面是示例代码(关注 render
和 handlePageClick
方法):
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import ReactPaginate from 'react-paginate';
import $ from 'jquery';
window.React = React;
export class CommentList extends Component {
render() {
let commentNodes = this.props.data.map(function(comment, index) {
return (
<div key={index}>{comment.comment}</div>
);
});
return (
<div id="project-comments" className="commentList">
<ul>
{commentNodes}
</ul>
</div>
);
}
};
export class App extends Component {
constructor(props) {
super(props);
this.state = {
data: [],
offset: 0,
selected: null
}
}
loadCommentsFromServer() {
$.ajax({
url : this.props.url,
data : {limit: this.props.perPage, offset: this.state.offset},
dataType : 'json',
type : 'GET',
success: data => {
this.setState({data: data.comments, pageCount: Math.ceil(data.meta.total_count / data.meta.limit)});
},
error: (xhr, status, err) => {
console.error(this.props.url, status, err.toString());
}
});
}
componentDidMount() {
this.loadCommentsFromServer();
}
handlePageClick = (data) => {
let selected = data.selected;
let offset = Math.ceil(selected * this.props.perPage);
this.setState({offset: offset, selected}, () => {
this.loadCommentsFromServer();
});
};
render() {
return (
<div className="commentBox">
<CommentList data={this.state.data} />
<ReactPaginate previousLabel={"previous"}
nextLabel={"next"}
breakLabel={<a href="">...</a>}
breakClassName={"break-me"}
pageCount={this.state.pageCount}
marginPagesDisplayed={2}
pageRangeDisplayed={5}
onPageChange={this.handlePageClick}
containerClassName={"pagination"}
subContainerClassName={"pages pagination"}
activeClassName={"active"}
forcePage={this.state.selected} />
<ReactPaginate previousLabel={"previous"}
nextLabel={"next"}
breakLabel={<a href="">...</a>}
breakClassName={"break-me"}
pageCount={this.state.pageCount}
marginPagesDisplayed={2}
pageRangeDisplayed={5}
onPageChange={this.handlePageClick}
containerClassName={"pagination"}
subContainerClassName={"pages pagination"}
activeClassName={"active"}
forcePage={this.state.selected} />
</div>
);
}
};
ReactDOM.render(
<App url={'http://localhost:3000/comments'}
author={'adele'}
perPage={10} />,
document.getElementById('react-paginate')
);
关于javascript - 同一页面上的 React Paginate Second Instance 不会重新呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41068815/
除了语法之外,在 CakePHP 2 中使用 $this->paginate() 和 $this->Paginator->paginate() 之间有什么区别? 使用其中一种比另一种有什么优势吗? 最
我正在使用 magento 1.7。在我的主页中,每个类别都有分页,分页出现在每个类别的顶部和底部。我想从顶部删除分页并在底部保留分页。 为了包括分页,我使用了以下代码, CMS > 页面 > 设计
我想在 Pagination::slider View 中做一些更改,例如添加类和更改箭头样式。我怎样才能做到这一点? 最佳答案 您可以通过调整 app/config/view.php 中的配置选项来
我是 angularjs 的新手。我正在使用 https://angular-ui.github.io/bootstrap/#/pagination .我有一些问题:style class="pagi
我看过this和this question。但是我仍然无法为存储库方法设置页面调度。不知道我是否受到错误的影响或只是没有正确编写此内容。基本上,我在问是否有人可以提供一个示例,说明如何对通过@Repo
我正在尝试使用 ng2-bootrap 在我的 angular2 应用程序中实现分页。我正在关注 http://valor-software.github.io/ng2-bootstrap/#pagi
我正在使用 flask-paginate 显示一些 rss 提要,分页工作正常,但 pagination.links 的样式不正确,它看起来像一个项目符号列表。在 stackoverflow 上有一个
我正在尝试详细阐述一种在分页模板和非分页模板之间切换的智能方法。 我已经有一个可用的分页器,我正在考虑在它旁边添加一个按钮,上面写着“显示所有结果”,链接到非分页列表,然后从那里会有另一个按钮返回到分
我正在使用 dir-pagination 指令进行分页,它工作正常,但在过滤分页时没有得到更新 下面是我的代码: {{booking.customer
我有一个大查询(在我的查询构建器中)和很多左连接。所以我得到了带有评论和标签等的文章。 假设我有以下 dql: $dql = 'SELECT blogpost, comment, tags FROM
我有一个这样的 ViewSet 来列出用户的数据: class Foo(viewsets.ViewSet): def list(self, request): queryset
我是 Angular 的新手,我想知道是否有任何方法可以将 ngFor 循环递增 2 而不是 1。 我正在尝试在需要将循环递增 2 的分页中实现两个分页。 我得到的对象中包含对象。比方说用户及其地址列
摘要 嗨,大家好!在这个问题中,我想请教您在仅从 material-ui 中导入父组件时如何设置子组件的样式。 问题 我想覆盖从 Material-UI 导入的分页项的类。我只是从 Material-
我正在创建 SharePoint Web 部件,每当我使用新的附加分页组件在 IE 中部署 Web 部件时,我都会收到此错误: 这是我的 MainController.js 文件: (function
无限滚动 next js不工作,相同的代码正常工作 create-react-app 最佳答案 与正常情况不同 React Js , 无限滚动 NextJs有不同的方法。这里我们将使用一个名为 rea
我必须实现基于游标的分页,并且我对如何实现这一点感到有点困惑,因为我的实体的主键不是自动增量,例如 Aerospike。 当比较运算符在我们不使用自动递增的分布式系统中的主键上不可用时,最明显的替代方
我能够使用 skip、limit(和 order by)来获取 UI 中特定页面的内容。例如。呈现页面大小为 m 的第 n 页。 UI 要求跳过 n*m 并限制 m。 但是,UI 想要为所有可能的页面
我有一个Excel工作表,其大小为100行和10列。 如何将这个Excel工作表保存到MS Word文档中,例如: 单词doc中的每个页面必须包含一张来自excel工作表的连续25行的表。 (第一页包
面包屑链接有一个微数据:http://www.data-vocabulary.org/Breadcrumb/ 但是页面链接是否有类似的微数据,例如: [] 最佳答案 是的,还有 pagination
我有存储在图形数据库中的事件。在某些情况下,多个事件被分组并聚合为 1 个事件。 处理后的事件提要可能如下所示: Activity 1 Activity 2 Grouped Activity Ac
我是一名优秀的程序员,十分优秀!