当前位置: 首页 > news >正文

免费自动建站今日最新国际新闻

免费自动建站,今日最新国际新闻,58做网站一年多少钱,湖南汉泰建设有限公司网站有个react项目是自己写的mock后端api,使用的是json文件模拟DB, slice函数模拟分页,但是在实际分页时,发现了分页不准的问题,现象如下: 当pageSize为5的时候(共16条数据),总共分4页&…

有个react项目是自己写的mock后端api,使用的是json文件模拟DB, slice函数模拟分页,但是在实际分页时,发现了分页不准的问题,现象如下:

当pageSize为5的时候(共16条数据),总共分4页,但是在前端切换分页按钮时,有如下问题:

1. 跳到第二页: api返回11条数据

2. 跳到第三页时: api返回6条数据

 

 这明显有问题,按道理说应该是前三页应该:每页都返回5条数据才对

到底哪里出了问题呢,于是开始对api服务端代码开启debug调试,在可疑处打断点:

发现入参pageNumber和pageSize是字符串类型,不是数字类型!

 严重怀疑是数据类型错误造成的问题,所以继续往下调试:

可以看到第135行的计算结果是16,这个明显不对,让我们来分析一下其中的原因:

startIndex是数字: 5

pageSize:是字符串:"5"

baseData.length(baseData中有16条数据):  16

那么计算一下 5 + "5"的结果是多少:

 

 可看到 5 + "5" = "55", 所以在取最小值时: Math.min("55", 16), 得出的结果就是16。

所以slice分页的起始索引就变成了slice(5, 16) , 也就是11条数据

然而我们期待的应该是两个数字类型的相加 :5+5 =10 ,那Math.min(10,16)的结果就是10,这才是我们想要的结果。

所以到此为止,真相已经清楚了: 就是入参数据类型的错误造成了分页不准的问题。

解决办法很简单:通过parseInt函数提前把入参从String类型转化成整数类型

  pageNumber = parseInt(pageNumber)

  pageSize = parseInt(pageSize)

 

 此时问题解决:

总结:在Javascript涉及到数字运算时,一定要特别小心,一定确保所有参与运算的元素提前转化成数字类型如果有字符串类型混入其中,就会造成计算结果错误的严重问题。

http://www.hkea.cn/news/7243/

相关文章:

  • 绵阳公司商务网站制作seo外包公司怎么样
  • 柳市网站制作百度一下的网址
  • 做网站需要独立显卡吗360优化大师官方最新
  • android应用开发技术重庆seo和网络推广
  • 自己做的网站显示不出来如何用手机制作网站
  • 上海软件开发企业百度seo推广优化
  • 网站三级导航栏代码郑州网站建设
  • 手机网站建设免费网站模板库
  • 外贸业务员如何寻找国外客户北京搜索引擎优化seo专员
  • 口碑好的做网站公司网站制作公司哪家好
  • 洛阳制作网站公司吗广东seo推广费用
  • 做企业网站和邮箱seo外链推广工具下载
  • 哈尔滨制作网站建网站赚钱
  • 开发手机端网站模板制作一个网站的流程有哪些
  • 龙岩网站制作seo公司发展前景
  • 外部门户网站首页软文营销经典案例优秀软文
  • 丰都专业网站建设公司活动软文怎么写
  • 免费做电子章网站app如何推广以及推广渠道
  • 小程序商店官网河南seo技术教程
  • jeecg 做网站企业网站怎么注册官网
  • wordpress 不能改邮箱seo培训费用
  • 佛山企业网站建设特色关键词分析工具
  • 定制商城网站建设互联网营销师培训教程
  • 聊城专业网站建设公司哪家好乐清网站建设
  • 昆明做商城网站多少钱樱桃bt官网
  • wordpress 爬取关键词seo
  • 可以制作视频的软件有哪些济南seo
  • 网站seo策划海淀区seo搜索引擎优化企业
  • 修改动态网站学校网站模板
  • 好玩的电脑网页游戏搜索引擎优化的目的是