我必须更新状态并在函数中使用它。它不会发生,因为我不能让它在当前系统中等待。它获取以前的数据并运行它。我怎么拿得住?例如3时页面的最后一个值为1。Click正在运行,它应该作为getReports中的1工作,但3工作。下一个是 1,但我需要那个瞬间。const onClick = () => { setReports([]); setPage(1); getReports(); <- use page and reports list}
2 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
快速解决方案,获取以前的值,增加它并用这个新值更新状态。在下一行中,将相同的增量值作为参数传递给getReports(new Value)。在这里,我们将仅使用状态来保留最后的数字/索引。
但是如果你只想使用状态,那么你不应该getReports()马上调用,相反你可以使用useEffect监听状态的变化,然后在变化时调用方法。就像是:
const [page, setPage] = React.useState(0);
React.useEffect(() => {
getReports();
}, [page]);
const onClick = () => {
setReports([]);
setPage(1);
// If page number is always incrementing
setPage(page+1);
}
holdtom
TA贡献1805条经验 获得超10个赞
在 React 中设置状态是异步的。这是因为它重新呈现 dom(或其部分),并且setState
调用(或挂钩)之后的任何代码将继续正常执行。就设置状态而言,忘记异步等待。
在您的示例中,我应该将页码传递给 getReports 函数。据我所知,没有必要保留数字状态。此外,对 的调用setReports([])
看起来也不需要,因为我认为 getReports 无论如何都应该覆盖它。
添加回答
举报
0/150
提交
取消