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

React钩子:如何检测特定状态变量何时更新[重复]

许淳
2023-03-14

在React钩子之前,我会使用componentdiddupdate(prevProps,prevState),如果我只想在发生这种情况时执行给定的代码。状态a已经更新了,我会的

if (prevState.a !== this.state.a) {
  <...>
}

如何在useffect()中实现同样的效果?

共有3个答案

东方吕恭
2023-03-14
useEffect(() => {
//Your code
}, [stateOne, stateTwo])

[stateOne,stateTwo]表示,如果内部定义的任何状态变量发生变化,useEffect将运行。也会在安装后第一次运行。

[]意味着它将只运行一次

它被称为use效应的依赖数组。

松元明
2023-03-14

USPERP将第二个参数作为依赖数组。您可以在这里传递您的状态,每当依赖数组中的值更改时,它就会执行

useEffect(() => {
   console.log('i get executed whenever a changes')
}, [a]) 
长孙明知
2023-03-14

useffect函数采用一个依赖关系数组,在该数组中,您可以提及要跟踪更改的状态。

useEffect(() => {
    //your code here
}, [a])
 类似资料:
  • 它几乎添加了一个对象,该对象包含来自主窗体的子窗体的值。 这是我用作按钮的函数的函数。 这将一个新对象添加到一个名为的状态,该状态是一个对象数组。 提前谢了。

  • 我正在React中使用useState钩子,状态将不会在

  • 我正在尝试使用状态将一个表单输入值复制到另一个表单输入值,但状态没有更新 我创建了一个带有按钮的表单,其中左侧表单输入的值应复制到右侧表单输入。这是我的代码: 无论我做什么,dbSecName的状态都不会改变。我试着设置一个新的常量。我尝试使onclick函数异步并等待。如果我为我试图设置的变量的值添加,我可以正确地看到它,但是dbSecName的console.log总是显示原始值。 我真的不知

  • 我正在学习React钩子,这意味着我将不得不从类转移到函数组件。以前,在类中,我可以拥有与状态无关的类变量,我可以在不重新呈现组件的情况下更新这些变量。现在我试图用钩子重新创建一个组件作为函数组件,我遇到了这样一个问题:我不能(就我所知)为该函数创建变量,因此存储数据的唯一方法是通过钩子。然而,这意味着每当该状态更新时,我的组件将重新呈现。 我已经在下面的示例中说明了这一点,我试图将类组件重新创建

  • 问题内容: 如何轻松检测变量何时更改值?我希望每当指定变量更改值时,程序的执行就在调试器上中断。现在,我正在使用Eclipse的调试器。 问题答案: 对于类或实例变量 右键单击大纲视图中的变量 选择“切换监视点” 然后,在breapkoints视图中,可以右键单击结果条目 选择“断点属性” 取消选择“现场访问”。

  • 我有一个对象的状态数组: 我有一个添加按钮,用于将对象添加到数组中,这是onclick事件的主体: