react+antd分页 实现分页及页面刷新时回到刷新前的page

antd框架地址:https://ant.design/index-cn

利用antdUI框架做了个分页,其他功能都没问题,但是页面跳转后刷新会回到第一页,经过学习,在组件里增加了hash值,详情请看代码,实现了页面跳转后刷新依然显示刷新前的页面。

import React from ‘react‘
import { Pagination, Spin } from ‘antd‘  //引入分页组件
import ‘whatwg-fetch‘
import ‘./agricultural.less‘

class Agricultural extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      agriculturalList: [],
      currentData: [],
      total: 0,
      pageSize: 3,
      pageNumber: parseInt(window.location.hash.slice(1), 0) || 1 //获取当前页面的hash值,转换为number类型
    }
    // 在react中点击事件里面 setState 时会使this重新定义,所以在点击的函数里面使用this.setState()时会报错this.setState not a function,因此需要提前给点击事件的函数绑定this
    this.onPageChange = this.onPageChange.bind(this);
    this.createMarkup = this.createMarkup.bind(this);
  }
  componentDidMount() {
    this.handleAnchor() //页面刷新时回到刷新前的page
  }
  handleAnchor() {
    this.onPageChange(this.state.pageNumber, this.state.pageSize); //手动调用onPageChange,传入当前页数和每页条数
  }

  onPageChange(page, pageSize) {
    this.setState({
      pageNumber: page
    }, () => {
      window.location.hash = `#${page}`; //设置当前页面的hash值为当前page页数
    })
  }

  render() {
    const agriculturalListData = this.state.currentData;return (
        <div className="agricultural-layout">
         // 你要显示的数据内容

//分页实现

<div className="pagination">
<Pagination
className="pagination-com"
showQuickJumper
hideOnSinglePage={ true }
defaultCurrent={ this.state.pageNumber }
current={ this.state.pageNumber }
total={ this.state.total }
pageSize={ this.state.pageSize }
onChange={ this.onPageChange }
showTotal={ (e) => {
return "Total " + e + " items"
} } />
</div>
</div>

        </div>
      )

  }

}
export default Agricultural;

原文地址:https://www.cnblogs.com/cristina-guan/p/9556274.html

时间: 2024-08-07 05:15:14

react+antd分页 实现分页及页面刷新时回到刷新前的page的相关文章

win10 uwp 让焦点在点击在页面空白处时回到textbox中

在网上 有一个大神问我这样的问题:在做UWP的项目,怎么能让焦点在点击在页面空白处时回到textbox中? 虽然我的小伙伴认为他这是一个 xy 问题,但是我还是回答他这个问题. 首先需要知道什么是空白处,例如有下面的代码 <Grid><TextBox x:Name="XcjKfqnkor"></TextBox></Grid> 那么空白就是 Grid ,需要点击他的时候回到 TextBox ,下面的代码我没有跑,可能无法运行 需要让 Gri

problem:vue组件局部刷新,在组件销毁(destroyed)时取消刷新无效问题

场景: 一个群发消息列表(数组) 列表下有多条消息(元素) 每条正在发送的消息数据状态需要实时刷新,发送完成时需要显示成功提示符合且不需要刷新,然后3秒消失.首次显示列表时,已经成功的状态不显示这个成功提示符. 1.定位确定采用局部刷新 2.进入消息列表请求获取列表数据的接口,完成发送的消息不需显示完成状态 3.正在发送的消息首次渲染时就调用setTimeout轮询刷新当前消息的接口,完成时,显示完成状态(新增一个完成状态的字段) 4.页面销毁时,还在发送的消息也取消刷新 误区: 1.每条消息没

webpack+react+antd 单页面应用实例

webpack+react+antd 单页面应用实例 React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React.React入门最好的实例-TodoList 自己从开始接触react一窍不通,到慢慢的似懂非懂,通过各种途径学习也有一阵了.学习过程中还会接触到很多新的东西,比如ES6.webpack,过程艰辛谁人懂,见坑填坑慢慢来.今天把学习过程过滤了一下,只说项目实际需要用的东西,总结了一套能看到的东西,分享给

ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面有很好的的案例,及注意事项 分页在我们的项目中是经常需要使用到的,普通分页体验是在是太差了,每一次点击下一步,会造成页面刷新,自己都看不过去了 ,O(∩_∩)O哈哈~ 所以这次我们要使用这个控件在做一个MvcPager的异步分页,分页的时候我们只刷新表格,而不是刷新页面 下面我们开始吧 一.分页 首

微信小程序页面事件-下拉刷新,上拉加载更多

1.下拉刷新的概念及应用场景. 概念: 下拉刷新是移动端更新列表数据的交互行为,用户通过手指在屏幕上子上而下的滑动,可以触发页面的下拉刷新,更新列表数据. 应用场景: 在移动端,数据列表是常见的页面效果,更新列表数据是最基本的页面需求,相比于按钮刷新,定时刷新来说,下拉刷新的用户体验方便友好,已经成为移动端刷新列表数据的最佳解决方案. 微信小程序启动下拉刷新: 两种方式: 1.需要在app.json 的window选项中或页面配置中开启enablePullDownRefresh, 但是,一般情况

03 页面刷新和表格刷新

表格赋予id var table = layui.table; table.render({ elem: '#test' ,url:'http://localhost:7300/mock/5e06d6ef83b40c266813ee7f/example/user/list' ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板 ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标.如无

ASP.NET真假分页—真分页

 承接上篇博文<ASP.NET真假分页-假分页>:http://blog.csdn.net/u010773667/article/details/38845009,继续讲解ASP.NET真假分页之真分页. 真分页 当数据量过大,有几万甚至十几万条数据时,每次都从数据库中取出所有数据就会降低查询效率,系统运行慢,还有可能卡死,这时假分页就会显得很不人性化,因此有了真分页的必要性. 正如上篇博文总结归纳,"真"相对于"假"存在,即不藕断丝连,从根部彻底断

EF更新,数据库值变化,前台页面并不变化,刷新也不变化,重新运行程序则变化----开发中遇到的问题(已解决)

首先说一下我遇到这个情况的代码情景,首先上错误代码 UserInfo userInfo = Session["UserInfo"] as UserInfo; var attentionTopicInfos = userInfo.TopicInfos.Where(t => t.TopicId > 0); 这段代码所呈现的问题正如题目,数据库值变化,前台页面并不变化,刷新也不变化,重新运行程序则变化. 断点调试----看到无论如何更新,查出来的attentionTopicInf

利用cookie实现iframe刷新时停留在当前页面

这段时间第一次用iframe,发现问题还挺多,这次主要解决了一个用cookie实现iframe刷新时停留在当前页面,具体步骤如下: 1.必须在每一个页面中记录下当前的url并存入cookie中,具体代码如下: <script> //记录当前页面url document.cookie="url=regist_code.html";</script> 2.在主页面中读取cookie中键为'url'的值.代码如下: <iframe id="index_