detailsを閉じているときに DOM を消しておきたいので作りました(作成時間5分)
const Details: VFC<{ summary: ReactNode; detail: () => ReactNode }> = ({ summary, detail, }) => { const [showsDetail, setShowsDetail] = useState(false); return ( <details open={showsDetail} onToggle={() => setShowsDetail((v) => !v)}> <summary tw="cursor-pointer select-none">{summary}</summary> {showsDetail && detail()} </details> ); }; <Details summary="サマリーの文言" detail={()=> <div>detail</div>}>
特に解説することもないです。