Reactのプロジェクトでsrcフォルダにある画像を読み込む

プログラミング

Reactのプロジェクトでsrcフォルダに保存しておいた画像ファイルが読み込めない!

という場面に出くわい焦ったので、その対処を備忘録として残しました。

画像が表示されない

Reactプロジェクトで画像が出ない

Reactプロジェクトでsrcフォルダにある画像を出力しようとしたら表示されない。

画像を出力しようとした<Image>コンポーネントはこんな感じ(chakra uiを使用)。

// Popup.jsの一部抜粋

        <Image
          boxSize="100px"
          objectFit="cover"
          src="../image/tanoshi.jpg" // 画像を参照
          m={2}
          alt="犬 楽しんでいる"
          onMouseOver={() => popupMSG('.tanoshi','たのしいなぁ~')}
          onMouseLeave={() => setPopup(false)}
        />

プロジェクトのファイル構成はこんな感じ。

どうチェックしても、パスの間違いということは無さそう。

Reactプロジェクトでsrcフォルダにある画像を参照するときはimportが必要

いろいろ調べた結果、Reactプロジェクトでsrcフォルダにある画像を参照するときにはimportが必要だと判明。

import DOG_TANOSHI_IMG from "../image/tanoshi.jpg"; // srcフォルダにある画像をimport

・・・中略・・・

        <Image
          boxSize="100px"
          objectFit="cover"
          src={DOG_TANOSHI_IMG} {// 画像のパスをimportした定義で参照}
          m={2}
          alt="犬 楽しんでいる"
          onMouseOver={() => popupMSG('.tanoshi','たのしいなぁ~')}
          onMouseLeave={() => setPopup(false)}
        />

srcフォルダにある画像を任意の名前で定義。

画像を参照するパス(src)には、その定義名で参照する。

そうすると、画像が表示できます。

表示された画像
神谷
神谷

知っていれば、たいしたことありませんが、知らない私は結構ハマった。

publicフォルダにある画像を参照するする場合は、またやり方が違いますので、その方法は後程別記事でご紹介します。

公式マニュアルじゃわからん(蛇足だけど)

なんではまったかの言い訳です(別に読まなくても支障はありません)。

<Box boxSize='sm'>
  <Image src='https://bit.ly/dan-abramov' alt='Dan Abramov' />
</Box>

上記のコードがchakra uiのImageコンポーネントに載っているサンプルコードなんです。

サンプルコードでは画像のパス(src)はネットから引っ張ってきているんですね。

srcフォルダから参照しているサンプルがないんです。

ネットの画像を参照するよりも、srcフォルダの画像を参照するパターンの方が多いと思うんですけど。

タイトルとURLをコピーしました