正解はコンポーネントを受け取って新しいコンポーネントを返す関数です。const EnhancedComponent = withAuth(Component)のように使用し、認証チェックやログ記録などの横断的関心事を追加できます。Hooksの登場により、多くの場合Hooksで代替可能になりました。