先日、私のプロジェクトで「Cannot read property 'displayName' of undefined」というエラーが発生しました。
使用していた技術は以下の通りです...

  • Storybook (6.2.7)
  • Next.js (10.1.3)
  • React (17.0.2)
  • TypeScript (4.2.4)

最終的に解決することができました。
少々疑問は残りますが、とにかくエラーは解消されました。というわけで、その一部始終をお見せします。

ある親コンポーネントと子コンポーネントのペアのコードを見てください。

// ChildComponent.tsx
import React from 'react'
const ChildComponent: React.FC = () => {
  ...
}

ChildComponent.displayName = 'ChildComponent'
export { ChildComponent }

とくに最後の2行が重要です。

ChildComponent.displayName = 'ChildComponent'
export { ChildComponent }

ここでdisplayNameを指定することで、 ‘displayName’ of undefined でなくなります。
と同時に、これを追記した場合はNamed exportsを使用する必要が発生します。

続いて、親コンポーネント。

// ParentComponent.tsx
import React from 'react'
import { ChildComponent } from './ChildComponent'
const ParentComponent: React.FC = () => {
  ...
  return (
    <>
      <ChildComponent />
    </>
  )
}

このソースコードで重要なのは2行目。

import { ChildComponent } from './ChildComponent'

ChildComponentをNamed exportsでエクスポートしたため、これも同様に呼び出す必要があります。以上です。
これでエラーはおそらく解決するはずです。

それでは、よいコーディングライフを!

もし、

「プログラミングを体系的に学びたい」
「エンジニア転職を頑張りたい」
「独学に限界を感じてきた...」
「コミュニティで仲間と共に学びたい」

などと感じられたら、ぜひ検討してみてください。

個別面談・説明会はこちら!


まずは様子見...という方は、公式LINEにぜひご登録下さい。
学習や転職ノウハウに関する豪華特典11個を無料配布しています!
LINE紹介ページで特典を確認する


■YouTube(SiiD受講生さま実績)

■YouTube(セイト先生メイン)

■X(旧Twitter)