Reactjs this.setState()之后的setState回调函数上的this.state

Reactjs this.setState()之后的setState回调函数上的this.state,reactjs,Reactjs,更新状态后,我正在尝试访问this.setState中的this.state。 我希望将用户信息设置为状态,然后从真相来源将用户数据保存到本地存储中 setUserInfo = userInfo => { this.setState( { username: userInfo.userName, password: userInfo.userPass }, prevState => { //trying to access this.state but

更新状态后,我正在尝试访问this.setState中的this.state。 我希望将用户信息设置为状态,然后从真相来源将用户数据保存到本地存储中

setUserInfo = userInfo => {
  this.setState(
    { username: userInfo.userName, password: userInfo.userPass },
    prevState => {
      //trying to access this.state but unable to
      console.log(prevState);
      // or
      console.log(this.state.username);
    }
  );
};
我知道这个代码可以做到,但是第二个setstate会在第一个setstate之后运行吗

setUserInfo = userInfo => {
  this.setState({ username: userInfo.userName, password: userInfo.userPass });
  this.setState(prevState => {
    prevState;
  });
};

函数中的
setState()
引用了
setState
的方法,因此区分这两种
。设置
var that=this
以便可以像
that.state.username那样使用它

var=this;
这是我的国家(
{用户名:userInfo.username,密码:userInfo.userPass},
prevState=>{
//尝试访问this.state.username,但无法
log(prevState.username,that.state.username);
}
);

您绑定函数了吗

在构造函数()中绑定函数

this.handleClick=this.handleClick.bind(this)


实际上,这应该是可行的

你可以在调用函数中使用userInfo.userName而不是this.state.userName这不是违背了单一真相来源的目的吗?“无法”是什么意思?请提供可以复制问题的。在回调中,
prevState
应该是更新状态。第二个设置状态是否确认在第一个设置状态之后运行它会,但不需要第二个setState。不,它不应该工作,
setUserInfo
显然是一个箭头,并且已经绑定到类上下文。此代码与问题中发布的代码不一致
setUserInfo
已经是一个箭头了。你是什么意思<代码>控制台.log(this.state.username)
这应该在setState回调中工作,它返回什么?我的意思是,
setUserInfo
已经是arrow函数了,用
bind
绑定它并不能比原始代码提供任何改进。是的,你是对的,不需要绑定,这是我的错误。但是
console.log(this.state.username)应该在那里工作它返回什么?
handleClick() {
    this.setState({ status: 2 }, () => {
      console.log(this.state);
    });
  }