259得票15回答
使用React状态钩子在setInterval中时,状态没有更新

我正在尝试使用新的React Hooks,并且有一个时钟组件,其中time值应该每秒增加一次。然而,该值不会增加超过1。 function Clock() { const [time, setTime] = React.useState(0); React.useEffect((...

249得票11回答
React钩子:如何从回调函数中访问最新的状态

编辑(2020年6月22日):由于这个问题又引起了一些关注,我意识到可能存在一些困惑的地方。因此,我想强调:问题中的示例旨在作为一个玩具示例。它并不能反映出实际问题。激发这个问题的问题是使用第三方库(控制有限)将回调作为参数传递给函数。提供最新状态的正确方式是什么?在React类中,可以通过使...

243得票7回答
React.useState 不会从 props 重新加载状态。

我期望当props改变时状态重新加载,但是这不起作用,并且在下一个useState调用中user变量没有更新,出了什么问题?function Avatar(props) { const [user, setUser] = React.useState({...props.user}); ...

240得票10回答
确定是哪个依赖数组变量导致了 useEffect 钩子的触发

有没有一种简单的方法来确定 useEffect 的依赖数组中哪个变量触发了函数的重新执行? 仅仅记录每个变量可能会产生误导,如果 a 是一个函数而 b 是一个对象,它们在记录时可能看起来相同,但实际上是不同的,从而导致 useEffect 重新执行。 例如:React.useEffect(...

239得票9回答
组件中对useState的多次调用导致多次重新渲染

我第一次尝试使用React hooks,一切都很好,直到我意识到当我获取数据并更新两个不同的状态变量(数据和加载标志)时,我的组件(数据表)会被渲染两次,尽管状态更新器的两个调用都发生在同一个函数中。这是我的api函数,它将这两个变量返回给我的组件。const getData = url =&...

232得票11回答
React hooks - 清除定时器和间隔的正确方式

我不明白为什么当我使用setTimeout函数时,我的React组件开始无限制地进行console.log。一切都在工作,但电脑却开始严重滞后。有些人说timeout中的函数会改变我的状态,并重新渲染组件,从而设置新的计时器等等。现在我需要了解如何正确清除它。export default fu...

230得票14回答
在React中,useState()是什么?

我目前正在学习React中的钩子概念,并尝试理解以下示例。import { useState } from 'react'; function Example() { // Declare a new state variable, which we'll call "co...

227得票9回答
为什么useState不会触发重新渲染?

我初始化了一个状态,它是一个数组,但是当我更新它时,我的组件不会重新渲染。这里是一个最简单的证明:function App() { const [numbers, setNumbers] = React.useState([0, 1, 2, 3]); console.log(&quot...

225得票8回答
在React中如何使用useState钩子和回调函数?

我正在使用钩子函数功能组件。我需要从子组件更新父组件的状态。我在父组件中使用了一个prop函数。 除此之外,一切都正常,但我的prop函数获取的是先前的state而不是当前的state。我的prop函数在useState钩子设置当前状态之前被执行。 我该如何等待我的回调函数在useState调...

221得票20回答
我该如何使用React hooks强制重新渲染组件?

考虑以下Hooks示例 import { useState } from 'react'; function Example() { const [count, setCount] = useState(0); return ( ...