当前位置: 首页 > 知识库问答 >
问题:

React setState更新发生得较晚(n-1),似乎我落后了一个[重复]

厍彭薄
2023-03-14
  const handlePageChange = (page, itemCount) => {
    

   setActivePage(page); // This is how am updating my state variable 
 
   setItemsPerPage(itemCount); // This is how am updating my state variable 
  

  }

handlePageChange是从onclick()调用的,但似乎activepage更新发生得很晚(似乎我滞后了一个),如果我转到第2页,我的activepage的状态变量将显示1

共有1个答案

姚星河
2023-03-14

由于setActivePage是异步方法,因此不能在setActivePage之后立即获取更新的值。您应该使用另一个具有依赖关系的useEffect来查看更新的activePage

const handlePageChange = (page, itemCount) => {
   setActivePage(page);
   console.log(activePage); // Old `activePage` value will be printed.
   ...
}
useEffect(() => {
  console.log(activePage) // print state variable inside useEffect.
}, [activePage]);

 类似资料:
  • 我有几个Flask应用程序,但它们似乎都启动了2个Python实例。我不知道为什么。 编辑:我在谷歌上搜索了Flask和多个Python实例等,但没有一次搜索让我在这里找到“已经回答的问题”。我发现我的问题比:“为什么运行Flask dev服务器会自己运行两次?”嗯?什么是Flask dev服务器?它与Python运行两次有关系吗?

  • 我对python还很陌生,我正在尝试创建21点。然而,当我试图打印出玩家的手牌时,我遇到了一些困难。 这是我的击球(抽牌)代码: 这是我打印卡片的代码: 我的代码所做的第一件事是为庄家和玩家抽两张牌,这运行得很好。然而,当玩家抽到一张牌后,它就会变得有点摇摆不定。输出如下所示: 当我抽到一张新牌时,这张牌不变,它保持我抽到的最后一张牌。然后,当我打印我的甲板,它打印我的旧甲板和我的新甲板。但是,分

  • 我有一些js使用readwrite事务对IndexedDB(在Chrome中)执行put,然后使用索引和readonly事务立即从相同的IndexedDB对象存储区查询。有时,我得到的结果不包括从我的put和其他时间他们的变化。IndexedDB中是否准备好了这样的脏内容?有办法避免吗? 可能是因为我使用了两个不同的TXN,而应该只使用一个(原因是这些调用实际上是api的一部分,该api将puts

  • 我有一个Apollo Graphql客户端项目。我尝试在查询中使用变异。但它似乎忽略了更新突变,因为查看效果很好。请帮助澄清问题。 我在改变编码方式方面做了很多尝试。在compose中交换变异和查询。更改更新文档的方式。但无法得到它。 我的代码如下:

  • 我的项目的整个依赖关系如下代码所示: 我想用来计算两个格式为'yyyy-mm-ss hh:mm:ss.ss'的输入日期字符串之间的时间间隔(例如'2017-12-26 00:00:02.044'),结果将加倍,精度达到毫秒,例如,当我传递“2017-12-26 00:00:02.044”、“2017-12-26 00:00:03.045”给时,结果将是1.001秒,然后附带Java代码段: 使用的

  • 问题内容: 我有这样的查询: 但是我只想对前400名进行此操作。我尝试添加“ limit 0,400”(就像我在查询中那样),但这没有用。我进行了一些搜索,而mysql似乎不像SQL Server那样支持TOP(n)命令。 知道我该怎么做吗? 编辑:为了将来参考,我使用以下样式进行选择,效果很好: 但无论出于何种原因,在更新中它都不会与“ 0”一起使用。我会认为这种不一致和模棱两可的行为,但是哦。