Javascript 我试图更新状态,但它';它不工作了

Javascript 我试图更新状态,但它';它不工作了,javascript,reactjs,react-router,react-state,Javascript,Reactjs,React Router,React State,我想在成功登录状态下更新我的“userSuccessfullLoggedIn”,但它不会更新。如果用户名和密码不正确,它会更新状态,但如果用户名和密码为真,它不会更新。我找不到问题,请帮助我 import React, { Component } from "react"; import LoginResponse from "./LoginResponse"; class Login extends Component { constructor(

我想在成功登录状态下更新我的“userSuccessfullLoggedIn”,但它不会更新。如果用户名和密码不正确,它会更新状态,但如果用户名和密码为真,它不会更新。我找不到问题,请帮助我

import React, { Component } from "react";
import LoginResponse from "./LoginResponse";

class Login extends Component {
  constructor() {
    super();
    this.state = {
      username: "",
      password: "",
      loginStatus: "",
      userSuccessfullLoggedIn: "",
    };
  }

  onChange = (event) => {
    this.setState({
      [event.target.name]: event.target.value,
    });
  };

  loginResponse = () => {
    if (this.state.username === "jarvis" && this.state.password === "jarvis") {
      console.log("Successfull");
      this.setState({
        loginStatus: true,
        userSuccessfullLoggedIn: true,
      });
      sessionStorage.setItem("user", this.state.username);
      this.props.history.push(`/welcome/${this.state.username}`);
    } else {
      console.log("Wrong");
      this.setState({
        loginStatus: false,
        userSuccessfullLoggedIn: false,
      });
    }
  };

  render() {
    return (
      <div>
        <div className="login-form">
          <h1 className="text-center"> LOGIN </h1>
          <div className="form-group">
            <input
              placeholder="Username"
              className="form-control"
              type="text"
              name="username"
              value={this.state.username}
              onChange={this.onChange}
            />
          </div>
          <div className="form-group">
            <input
              placeholder="Password"
              className="form-control"
              type="password"
              name="password"
              value={this.state.password}
              onChange={this.onChange}
            />
          </div>
          <div className="form-group">
            <button className="btn btn-primary" onClick={this.loginResponse}>
              LOGIN
            </button>
          </div>
          <LoginResponse status={this.state.loginStatus} />
        </div>
      </div>
    );
  }
}
export default Login;
import React,{Component}来自“React”;
从“/LoginResponse”导入LoginResponse;
类登录扩展组件{
构造函数(){
超级();
此.state={
用户名:“”,
密码:“”,
登录状态:“”,
userSuccessfullLoggedIn:“”,
};
}
onChange=(事件)=>{
这是我的国家({
[event.target.name]:event.target.value,
});
};
loginResponse=()=>{
if(this.state.username==“jarvis”&&this.state.password==“jarvis”){
console.log(“成功”);
这是我的国家({
罗根斯塔斯:没错,
userSuccessfullLoggedIn:true,
});
sessionStorage.setItem(“用户”,this.state.username);
this.props.history.push(`/welcome/${this.state.username}`);
}否则{
控制台日志(“错误”);
这是我的国家({
loginStatus:false,
userSuccessfullLoggedIn:false,
});
}
};
render(){
返回(
登录
登录
);
}
}
导出默认登录;
控制台


它将进入成功块,但不会将状态从false更新为true

设置状态本质上是异步的,请回拨并检查您得到的状态,即

this.setState({ loginStatus: true, userSuccessfullLoggedIn: true, }, () => {
 console.log(this.state.loginStatus); 
});

适用于我:setState本质上是异步的,请回调并检查您得到的状态,即:this.setState({loginStatus:true,userSuccessfullLoggedIn:true,},()=>{console.log(this.state.loginStatus);});谢谢你的帮助。现在我明白为什么它不更新状态了。