优化客户端请求时候操作的页面不更新

This commit is contained in:
2025-06-06 10:21:14 +08:00
parent ce4e621741
commit 358e9ab745
10 changed files with 162 additions and 81 deletions
+6 -7
View File
@@ -1,5 +1,5 @@
import { useState } from "react";
import { useActionData } from "@remix-run/react";
import { useActionData, Form } from "@remix-run/react";
import { type MetaFunction, type ActionFunctionArgs, redirect, type LoaderFunctionArgs } from "@remix-run/node";
import styles from "~/styles/pages/login.css?url";
import { getUserSession, getSession, type UserRole, sessionStorage } from "~/root";
@@ -22,7 +22,7 @@ export async function action({ request }: ActionFunctionArgs) {
const password = formData.get("password") as string;
const userRole = formData.get("userRole") as UserRole || 'common';
console.log("userRole-----", userRole);
// console.log("userRole-----", userRole);
// 简单的登录验证,实际应用中应该进行真正的身份验证
if (!username || !password) {
@@ -39,7 +39,7 @@ export async function action({ request }: ActionFunctionArgs) {
const session = await getSession(request);
// 查看session中存储的redirectTo值
const redirectTo = session.get("redirectTo") || "/";
console.log("登录后重定向到:", redirectTo);
// console.log("登录后重定向到:", redirectTo);
// 创建会话cookie
const newSession = await sessionStorage.getSession();
@@ -47,7 +47,7 @@ export async function action({ request }: ActionFunctionArgs) {
newSession.set("userRole", userRole);
const cookie = await sessionStorage.commitSession(newSession);
console.log("设置cookie:", !!cookie);
// console.log("设置cookie:", !!cookie);
// 使用新方法进行重定向
return redirect(redirectTo, {
@@ -85,8 +85,7 @@ export default function Login() {
<div className="login-form-container">
<h2 className="login-subtitle"></h2>
<form
action="/login"
<Form
method="post"
className="login-form"
>
@@ -144,7 +143,7 @@ export default function Login() {
>
</button>
</form>
</Form>
</div>
<div className="login-footer">