【发布时间】:2022-01-19 14:16:55
【问题描述】:
反应中的 v-if 是什么?我试过了,但是当加载数据发生变化时,我的加载类的 div 不起作用,所以 div 不会重新渲染自己。 代码在这里:
{
loading &&
<div className="loading"></div>
}
我正在使用函数更改加载,该函数与 onclick 事件一起使用。
我的所有代码:
import React from "react";
import axios from "axios";
export class LoginPage extends React.Component{
render(){
let username = '',
password = '',
loading = false
function login(){
loading = true;
console.log(loading)
}
return (
<div className="App">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
integrity="sha512-Fo3rlrZj/k7ujTnHg4CGR2D7kSs0v4LLanw2qksYuRlEzO+tcaEPQogQ0KaoGN26/zrn20ImR1DfuLWnOo7aBA=="
crossOrigin="anonymous" referrerpolicy="no-referrer"/>
{
loading &&
<div className="loading"></div>
}
<div className="login">
<h1>Login/Register</h1>
<div>
<i className="fas fa-user"></i>
<input type="text" onChange={(e) => username = e.target.value} placeholder="Username" maxLength="15"/>
</div>
<div>
<i className="fas fa-lock"></i>
<input type="Password" placeholder="Password" onChange={(e) => password = e.target.value} maxLength="18"/>
</div>
<button onClick={() => login()}>Login/Register</button>
</div>
</div>
);
}
}
【问题讨论】:
-
你如何更改
loading变量? -
有一个函数,函数与onclick事件一起工作。
-
使用
loading作为状态变量,并使用 useState 挂钩进行更改,以便触发重新渲染,如果您在类组件上,则使用 setState 进行更改 -
像这样:
const [loading, setLoading] = useState(true)。然后,当您想为其设置新值时,请执行setLoading(false) -
如果你在一个功能组件上,上面的例子可以工作
标签: javascript reactjs components jsx