• 用于渲染 Promise 值并自动处理错误。

    import { Await, useLoaderData } from "react-router";

    export function loader() {
    // not awaited
    const reviews = getReviews()
    // awaited (blocks the transition)
    const book = await fetch("/api/book").then((res) => res.json())
    return { book, reviews }
    }

    function Book() {
    const { book, reviews } = useLoaderData();
    return (
    <div>
    <h1>{book.title}</h1>
    <p>{book.description}</p>
    <React.Suspense fallback={<ReviewsSkeleton />}>
    <Await
    resolve={reviews}
    errorElement={
    <div>Could not load reviews 😬</div>
    }
    children={(resolvedReviews) => (
    <Reviews items={resolvedReviews} />
    )}
    />
    </React.Suspense>
    </div>
    );
    }

    注意: <Await> 期望在 <React.Suspense> 内部渲染

    类型参数

    • Resolve

    参数

    返回值 Element