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

如何在设置状态值[重复]的函数中访问更新的状态值

左丘昕
2023-03-14
class Signup extends React.Component {
  constructor() {
    super();
    this.state = { count: 0 }
  }

  hndlChange() {
    //here it's okay, It increasing count value
    this.setState({ count: this.state.count + 1 });

    //but here it printing previous value
    console.log(this.state.count);

  }
}

我正在调用这个函数。因为它在增加count值,但是当我访问它时,它返回以前的值。我想访问同一函数中最新更新的值,我应该做什么。

如何访问同一函数中的最新状态值

共有1个答案

金子轩
2023-03-14

如前所述,React具有附加的callback参数

另外,当您想使用当前值改变状态时,应该使用函数version:

this.setState(currentState => ({ count: currentState.count + 1 }), () => {
    console.log(this.state.count);
});
 类似资料:
  • 这两个是等价的吗?如果不是,哪一个是最好的,为什么?

  • `正在尝试更新onclick中的对象数组。我有两个状态,即数组格式的“IntialValue”和“Todos”。当我检查react developer工具时,我可以看到有两种状态。该任务的流程是用户可以在输入文本框中输入文本,一旦用户点击了添加按钮,我想把它添加为对象数组,我保留了一个布尔字段和Id字段。我面临的问题是我能正确地得到“InputValue”。我还得到了对象的数组,但不是在“todo

  • 我的布局如下: 我的职能 问题是我调用的函数在设置会话状态之前完成运行。在运行其余代码之前,我需要一些方法来等待状态被设置。有点像。那就好了。在类组件中,您可以使用第二个参数并将其传递给setState,但我使用的是函数组件。 我试着用一个promise: 这没用。。

  • 我传递的名称和值处理函数从子组件。 现在我想将状态设置为与提供的名称匹配的值。但是我不知道如何设置它。 我尝试了这种方式(但它给出了错误-'this.set状态不是一个函数'): 子组件的代码为: 设置它的正确语法是什么?

  • 我对下拉菜单中的设置状态有问题。我在代码中使用了typescript。所选类别值不会更改,并且始终返回空字符串。我怎样才能解决这个问题?

  • 我想在状态尚未装入时访问状态的属性。 我想做4,但得到以下错误: P. S也不起作用。