2001Yのプロフォール画像

2001Y@Y20010920T

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>