我正在尝试更新状态,但它不起作用[重复]
Posted
技术标签:
【中文标题】我正在尝试更新状态,但它不起作用[重复]【英文标题】:I am trying to update the state but it's not working [duplicate] 【发布时间】:2020-11-17 13:32:21 【问题描述】:我想在成功登录状态下更新我的“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;
控制台
它正在进入 Success 块,但它没有将状态从 false 更新为 true
【问题讨论】:
为我工作:codesandbox.io/s/flamboyant-chaum-542c6?file=/src/App.js setState 本质上是异步的,请回拨并检查您所获得的状态,即 this.setState( loginStatus: true, userSuccessfullLoggedIn: true, , () => console.log (this.state.loginStatus); ); 【参考方案1】:setState 本质上是异步的,请回拨并检查您所获得的状态,即
this.setState( loginStatus: true, userSuccessfullLoggedIn: true, , () =>
console.log(this.state.loginStatus);
);
【讨论】:
感谢您的帮助。现在我明白为什么它没有更新状态了。以上是关于我正在尝试更新状态,但它不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我正在尝试折叠 onclick 方法上的导航栏,但它不起作用
PDO SQL 我正在尝试将我的 SQL 查询设置为检查多个列,但它不起作用 [重复]
SYMFONY 5 - 我尝试将 HTML 代码放在 mysql 中,但它不起作用 [重复]