我一直在观察人们使用useLoaderData()来提取传递给Reaction组件的值
以下是我在App.js中的代码,
const router = createBrowserRouter(
createRoutesFromElements(
<Route path='/' element={<RootLayout/>}>
<Route path='user' loader={userLoader} element={<User/>}></Route>
</Route>
)
)
在元素中,
import { useLoaderData, Link } from "react-router-dom";
const User = () => {
const users = useLoaderData();
return (
<div >
</div>
);
}
//loader function
export const userLoader = async () => {
const res = await fetch('http://localhost:8000/user');
return res.json();
}
export default User;
我的问题是,是否可以从多个URL提取并返回浏览器一次,然后使用useLoaderData()提取?
哪个东西看起来像这样
export const userLoader = async () => {
const res1 = await fetch('http://localhost:8000/user');
const user= res1.json();
const res2 = await fetch('http://localhost:8000/car');
const car= res2.json();
return {user, car};
}
我注意到,每当我在装载器函数中用{}包围json结果时,它都会返回Promise,为什么会这样?
//loader function
export const userLoader = async () => {
const res = await fetch('http://localhost:8000/user');
return {res.json()}; ////why u cant put {}?
}
export default User;