javascript - 如何自动点击提交按钮 - 反应
问题描述
我有一个手动输入用户名和密码的反应登录页面,
我希望提交按钮在页面加载时自动单击,以便自动登录用户。
这是我的代码。
export const LoginForm = () => {
const history = useHistory();
const classes = useStyles();
const email = 'email@email.com';
const password = 'mypassword';
const [authStatus, setStatus] = useState(null);
const [isSpinnerHidden, setSpinner] = useState(true);
const { session } = useContext(SessionContext);
const recaptchaRef = useRef();
const _onSubmit = async (e) => {
e.preventDefault();
setSpinner(false);
const authResult = await session.signIn(email, password);
setSpinner(true);
console.log(session);
authResult ? setStatus(authResult) : history.push('/dashboard');
};
return (
<form onSubmit={_onSubmit}>
<Typography
align='center'
color='primary'
variant="h4"
style={{ marginBottom: '20px' }}
>
Sign In
</Typography>
{authStatus ?
<Alert
severity="error"
>
{authStatus}
</Alert>
:
null
}
<TextField
type='email'
label="Email"
/>
<TextField
type='password'
label="Password"
/>
<Link
onClick={() => history.push('/restore')}
className={classes.restore}>
Forgot password?
</Link>
<MuiButton
text='Sign In'
type='submit'
value='login'
isSpinnerHidden={isSpinnerHidden}
className={classes.button}
/>
</form>
);
};
我可以在此代码中添加什么或进行更改以使其自动单击登录按钮并登录用户。
解决方案
为了自动点击提交按钮,您需要使用onLoad
将您的 _onSubmit 转换为 Windows onload,类似这样
window.onload = async (e) => {
e.preventDefault();
setSpinner(false);
console.log('hello');
const authResult = await session.signIn(email, password);
setSpinner(true);
console.log(session);
authResult ? setStatus(authResult) : history.push('/dashboard');
}
推荐阅读
- javascript - 如何在选定的 Jquery 中实现水平滚动条以下拉?
- laravel - 在 Google App Engine (Laravel 6.2) 上设置多个 Cloud SQL 连接
- c# - 模块化 C# WinForms 应用程序中的跨线程通信
- sql - 插入当前日期和时间
- sed - sed:删除匹配行和之后的所有内容
- sql-server - 较新 SQL 版本中的旧数据库兼容性
- sql - LINQ 为空字符串生成错误的 SQL
- php - Laravel 护照 API 令牌适用于所有人
- python - 使用熊猫进行网络抓取时在列表中显示 0 元素
- node.js - 使用 NodeJS 发送 post 请求