🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

4079閲覧

Reactで任意のパスにあるイメージ画像の画面表示ができない。

Osat.Kaso

総合スコア17

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/03/26 08:47

次の環境でテストをしています。
OS : Windows10
React : 4.0.3

次の処理をしました。

  1. Reactのアプリは、次のコマンドで作成しました。

F:
cd \react
npx create-react-app img_randam
2. パス「F:\react\img_randam\src\assert」を作成し、そのパスにファイル「Google.jpg」を作成しました。
3. ファイル「F:\react\img_randam\src\App.js」を次のように修正しました。

import React from 'react'; class App extends React.Component { render() { return <img src={require('./assert/Google.jpg')} alt="Logo" height="400px" width= "600px" />; } } export default App;

4.次のコマンドを実行しました。
cd F:\react\img_randam
npm run start

  1. WEB画面には、ファイル「Google.jpg」の画像でなく、次の画像が表示されました。

イメージ説明

Reactのバージョン4.0.1で同じ処理をした時には、次の画面が表示されました。
(ファイル「Google.jpg」の画像が表示されています)
イメージ説明

皆さんにお聞きいたしますが、

  1. Reactのバージョン4.0.3では、なぜ画像が表示されないのでしょうか?
  2. 画像を表示する方法があれば教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/03/26 17:17

4.0.1 とか 4.0.3 というのは、React アプリの雛形を作るコマンド create-react-app のバージョンですね。 React そのもののバージョンは 16 とか 17 とかのはずです。package.json をご確認ください。
Osat.Kaso

2021/03/28 13:46

package.jsonは、次の通りとなっています。 -- { "name": "img_randam", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", "react": "^17.0.1", "react-dom": "^17.0.1", "react-scripts": "4.0.3", "web-vitals": "^1.0.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } --
guest

回答2

0

hosi-takanoriさん、回答をありがとうございました。
あなたが示した方法で、画像表示が成功しました。

尚、require文を使用する方法も、次のHPを参照することでわかりました。
(https://stackoverflow.com/questions/65951374/fail-to-require-image-when-using-react-17-version)
次のソースファイルです。

require文を使用したファイル

1import React from 'react'; 2 3class App extends React.Component { 4 render() { 5 let src = require('./asset/Google.jpg'); 6 7 return <img src={src.default} alt="Logo" height="300px" width= "450px" />; 8 } 9} 10 11export default App; 12

投稿2021/03/31 06:37

Osat.Kaso

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

画像の読み込みも require ではなく import を使うと良いでしょう。
参考: React.JS (Webpack)の画像ファイルのimportについて - sgryjp.log

js

1import React from 'react'; 2import Google from './asset/Google.jpg'; 3 4class App extends React.Component { 5 render() { 6 return <img src={Google} alt="Logo" 7 height="400px" width= "600px" />; 8 } 9} 10 11export default App;

あと、assert は条件が成り立つことを確認する処理 (主にテストコードで使う) で、画像などの素材は asset ですね。

投稿2021/03/28 22:29

hoshi-takanori

総合スコア7899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問