import { Suspense, use } from 'react'; export type Item = { id: string; label: string }; export type StreamingListProps = { chunks: Promise<Item[]>[]; }; // 각 promise를 한 번만 use()하기 위해 식별성 보존이 중요합니다 — chunks 배열을 직접 use하세요. function ChunkBlock({ promise, index }: { promise: Promise<Item[]>; index: number }) { // TODO: use(promise)로 items를 얻으세요 // TODO: items.map으로 <li key={item.id}>{item.label}</li> 렌더 // TODO: <ul data-testid={`chunk-${index}`}>로 감싸세요 return null; } export function StreamingList({ chunks }: StreamingListProps) { // TODO: chunks.map으로 각 promise를 <Suspense fallback={<p>Loading chunk {i}</p>}>로 감싸세요 // TODO: 각 Suspense 안에 <ChunkBlock promise={p} index={i} /> // TODO: 전체를 <div>로 감싸세요 return <div>{/* TODO */}</div>; }
Tests