0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Reactを使用して配列データを出力したい場合、key属性を付与しなければならないというお話。
例えば以下のようなデータをリスト形式で画面に表示したい場合。

dataList = [
{
    "name": "taro",
    "gender": "male",
    "age": 25,
},
{
    "name": "hanako",
    "gender": "female",
    "age": 30,
}
];

JSXを用いて実装するとこのようになる。
map関数を用いて配列内のデータを出力している。

export const List = () => {
  return (
    <ul>
      {dataList.map((data, index) => (
        <li key={index}>
          {data.name} ({data.gender}, {data.age} years old)
        </li>
      ))}
    </ul>
  );
};

Pasted image 20240703215618.png

しかし、上記実装では問題がある。コンソールには以下のようなエラーメッセージが出力されていることが確認できる。

Pasted image 20240703215711.png

これを回避するためには、ユニークな値でもってkey属性を付与しなければならない。
つまり以下のようにmap関数を使って生成している要素に対して、key属性を付与することで先ほどのエラーは解消できる。

export const ListData = () => {
  return (
    <ul>
      {dataList.map((data, index) => {
        return (
          <li key={index}>
            {data.name} ({data.gender}), {data.age} years old
          </li>
        );
      })}
    </ul>
  );
};

なお、今回はindexを使用しているがベストプラクティスではないようです。
この辺りは扱うデータが持つ固有の値を用いるようにしたほうがよさそうですね。

参考

Reactのリファレンスはしっかりと日本語で書かれていて、ありがたいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?