如何在用于设置状态值的同一函数中访问更新的状态值

时间:2018-01-18 10:37:19

标签: reactjs react-native react-redux

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值但是当我访问它时它返回先前的值。我想在相同的功能中访问最新的更新值我该怎么做。

如何在同一功能中访问最新状态值

2 个答案:

答案 0 :(得分:3)

如上所述here React还有callback个参数。

此外,当您想使用当前值改变状态时,您应该使用函数版本:

this.setState(currentState => ({ count: currentState.count + 1 }), () => {
    console.log(this.state.count);
});

答案 1 :(得分:1)

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

设置状态是异步的。