亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React 顯示傳入字符串中的圖像

React 顯示傳入字符串中的圖像

www說 2023-09-28 09:46:32
我有一個 json 文件,它將信息傳遞到構造函數中。傳入的 json 中有 3 個字符串,它們是 3 個不同圖像文件的路徑。然后,我嘗試獲取這些字符串并將它們用作輪播中 img 標簽的 src。但是,我在下面執行此操作的方式只會顯示替代文本。如何在 React 環境中使用傳遞給構造函數的字符串作為 img src?如果我讓 img1、img2 或 img3 在警報中顯示它們自己,它實際上會顯示正確的路徑。已編輯JSON 包含您在下面看到的內容      'img1':'./images/forest.PNG',      'img2':'./images/desert.PNG',      'img3':'./images/city.PNG'在 App.js 中它被傳遞給下面的變量  let grabbedImg1 = '';  let grabbedImg2 = '';  let grabbedImg3 = '';然后,它們都被設置為等于基于 id 的 JSON 文件中的相應 img 標簽。打印頁面時<Item name={grabbedName} date={grabbedDate} lang={grabbedLang} detail={grabbedDetails} img1={grabbedImg1} img2={grabbedImg2} img3={grabbedImg3} />我幾乎肯定這些值本身已在構造函數中成功設置,因為我可以在警報中或僅在頁面上的 ap 標記中正確打印它們。由于某種原因,img src 不會接受它。import React from 'react';import ReactDOM from 'react-dom';import Jumbotron from 'react-bootstrap/Jumbotron'import 'bootstrap/dist/css/bootstrap.css';import Carousel from 'react-bootstrap/Carousel';import './Item.css';export class Item extends React.Component {    constructor({name , date, lang, detail, img1, img2, img3})    {     super();     this.name = name;     this.date = date;     this.lang = lang;     this.detail = detail;     this.img1 = img1;     this.img2 = img2;     this.img3 =img3;    }    render(){        return (            <div>                  <Carousel>                  <Carousel.Item interval={4000}>                    <img                      className="d-block w-100"                      src={this.img1}                      alt="First slide"                    />                  </Carousel.Item>                  <Carousel.Item interval={4000}>                    <img                      className="d-block w-100"                      src={this.img2}                      alt="Second slide"                    />            </div>        );    }}
查看完整描述

4 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

我想到了。


在 JSON 文件中,我將圖像路徑作為字符串傳遞。相反,我需要做的是在 JSON 文件中導入圖像,然后將導入傳遞到字段中,如下所示。


import forest from './images/forest.PNG';

import desert from './images/desert.PNG';

import city from './images/city.PNG';



'img1':{forest},

'img2':{desert},

'img3':{city}

然后在項目頁面中嘗試顯示 src 需要的讀入值


src={Object.values(this.imgX)}


X 是我試圖顯示的數字。

查看完整回答
反對 回復 2023-09-28
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

可能您需要傳遞相對于項目中公共文件夾的 img scr 。嘗試將圖像放在 public/images 文件夾中并將 json 文件更改為:


'img1':'images/forest.PNG',

'img2':'images/desert.PNG',

'img3':'images/city.PNG'


查看完整回答
反對 回復 2023-09-28
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

您可能需要導入這些圖像以將它們用作 img 標記中的源。這應該有效。


                <img

                  className="d-block w-100"

                  src={require(this.img1)}

                  alt="First slide"

                />

老實說,這完全是一個糟糕的方法。您應該將圖像導入到組件中(即import img from './*location of image relative to component*/image.jpg'),然后創建一個映射,其中圖像路徑是鍵,圖像是值(即const images = {'./*path passed to component*/image1.jpg' : img})。然后使用源標記中傳遞的值引用地圖(即


                <img

                  className="d-block w-100"

                  src={images[this.img]}

                  alt="First slide"

                />

)


查看完整回答
反對 回復 2023-09-28
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

import img1 from "./images/forest.PNG"

...

<Item img1={img1} ... />

因此,您應該將 obj 作為 props 傳遞,但應該傳遞 path,因為路徑是相對于文件路徑的。


查看完整回答
反對 回復 2023-09-28
  • 4 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號