reactjs - 我正在尝试创建一个基本登录。但以下代码不起作用
问题描述
setState 没有更新 的值isCurrectLogin
。
import React, { Component } from 'react';
import UserRecords from './UserRecords.json'
json文件有以下记录:
[
{
"id" : 1,
"userName" : "Bala",
"password" : "123"
},
{
"id" : 1,
"userName" : "John",
"password" : "456"
},
{
"id" : 1,
"userName" : "Ram",
"password" : "789"
},
{
"id" : 1,
"userName" : "Peter",
"password" : "1011"
}
]
我提取类组件。
export default class UserLogin extends Component {
constructor(){
super();
this.state = {
currentUser : "",
currentPassword : "",
isCurrectLogin : false,
}
}
loginClickHandler = () => {
UserRecords.map((d)=>{
for(var i = 0; i < UserRecords.length; i++){
if(UserRecords[i].userName == "Bala"){
this.setState({isCurrectLogin : true})
} else {
this.setState({isCurrectLogin : false})
}
}
})
if (this.state.isCurrectLogin) {
alert("user name is correct")
} else {
alert("User name is wrong")
}
}
render(){
return(
<div>
<Button onClick = {this.loginClickHandler}> Login </Button>
</div>
)
}
}
请帮助我找到我错过的代码。
非常感谢。
解决方案
请检查这是否适合您
const UserRecords = [
{
"id" : 1,
"userName" : "Bala",
"password" : "123"
},
{
"id" : 1,
"userName" : "John",
"password" : "456"
},
{
"id" : 1,
"userName" : "Ram",
"password" : "789"
},
{
"id" : 1,
"userName" : "Peter",
"password" : "1011"
}
]
let isCurrectLogin = false
loginClickHandler = () => {
const username = "Peter"
isCurrectLogin = UserRecords.filter(element => {
if (element.userName === username) {
return true
}else{
return false
}
});
if (isCurrectLogin) {
alert("user name is correct")
} else {
alert("User name is wrong")
}
}
loginClickHandler()
推荐阅读
- c# - 如何为 ASP.NET Core API 设置 OAuth2 不记名令牌?
- javascript - js转义特殊字符
- apache-camel - 热部署骆驼路由时出现 JAXB ClassNotFoundException com.sun.xml.bind.v2.ContextFactory
- javascript - Ajax 只在 Django 中运行一次
- python - 在 Tkinter 中将用户输入更改为数学方程
- linux - 如何使用 wc -c 以字节为单位获取文件大小
- spring - 必需参数异常在 Spring Boot 2.x 中不起作用
- c - 从C中的txt文件中提取逗号分隔的字符串
- python - 时间优化:性能、访问列表列表中的值、numpy 数组列表
- python - 如何使用 BeautifulSoup 提取文本和列表