[JSX] mapでエラーが出る時


Next.jsで配列をmapで出力しようとした時にTypeError: Cannot read properties of undefined (reading 'map')が出ることがある。

これはコンポーネントなどで変数が空だからエラーになっているため、変数が存在する時だけ実行するか、空変数の場合はから配列を代入することで対応する。

// NG
<ul>
    {list.map((name, i) => (
        <li key={i}>{name}</li>
    ))}
</ul>

// OK: 変数が存在するときだけ実行
<ul>
    {list?.map((name, i) => (
        <li key={i}>{name}</li>
    ))}
</ul>

// OK: 空変数には空配列を代入して実行
<ul>
    {(list || []).map((name, i) => (
        <li key={i}>{name}</li>
    ))}
</ul>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です