这是我的注册页面代码:
import { useState } from "react";
import { Link } from "react-router-dom";
export default function SignUp() {
const [formData, setformData] = useState({});
const [error, setError] = useState(null);
const [loading, setLoading] = useState(false);
const handleChange = (e) => {
setformData({ ...formData, [e.target.id]: e.target.value });
};
// console.log(formData);
const handleSubmit = async (e) => {
e.preventDefault();
try {
setLoading(true);
const res = await fetch("/api/auth/signup", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(formData),
});
const data = await res.json();
if (data.success === false) {
setError(data.message);
setLoading(false);
// setError(null);
}
setLoading(false);
console.log(data);
} catch (error) {
setLoading(false);
setError(error.message);
}
return (
<div className="p-3 max-w-lg mx-auto">
<h1 className="text-3xl text-center font-semibold my my-7">Sign Up</h1>
<form className="flex flex-col gap-4" onSubmit={handleSubmit}>
<input
type="text"
placeholder="Username"
className="border p-3 rounded-lg"
id="username"
onChange={handleChange}
/>
<input
type="text"
placeholder="Email"
className="border p-3 rounded-lg"
id="email"
onChange={handleChange}
/>
<input
type="password"
placeholder="Password"
className="border p-3 rounded-lg"
id="password"
onChange={handleChange}
/>
<button
disabled={loading}
className="bg-slate-700 text-white p-3 rounded-lg uppercase hover:opacity-90 disabled:opacity-70"
>
{loading ? "Loading..." : "Sign Up"}
</button>
</form>
<div className="flex gap-2 mt-5">
<p>Have an account?</p>
<Link to={"/sign-in"}>
<span className="text-blue-700">Sign in</span>
</Link>
</div>
{error && <p className="text-red-500 mt-5">{error}</p>}
</div>
);
};
}
这有什么不对吗?
我只是试图添加ToastContainer来显示一些错误消息,但当我看到它停止呈现注册表单时,我使用code.exe +z取消了所有步骤。但它仍然没有把我的表格呈现在页面上。
在所有这些危险之前,表单呈现得很好。控制台没有错误,所有其他链接都正常工作。
1条答案
按热度按时间bq9c1y661#
关闭括号
}
在错误的位置--handleSubmit
没有正确关闭。相反,它包括整个return
块。修复方法是简单地将
}
移动到setError(error.message);
之后的行下面是完整的固定代码