Skip to content

useActionData

useActionData 是一个 React-router 的钩子函数,用于获取路由的 action 数据。

使用

返回 action 处理完之后的数据,通常被用于错误处理

tsx
//router/index.tsx
import { createBrowserRouter } from "react-router";
const router = createBrowserRouter([
  {
    path: "/",
    Component: App,
    action: async ({ request }) => {
      //可以根据不同的格式获取不同的数据
      const formData = await request.formData(); //获取formData数据
      //const json = await request.json(); //获取json数据
      //const text = await request.text(); //获取text数据
      const email = formData.get("email");
      const password = formData.get("password");
      const errors = [];
      if (!email) {
        errors.push("Email is required");
      }
      if (!password) {
        errors.push("Password is required");
      }
      return { errors };

      return await createUser({ email, password });
    },
  },
]);

//App.tsx
import { useActionData } from "react-router";
const App = () => {
  const errors = useActionData(); 
  return <div>{errors}</div>;
}

Released under the MIT License.