如何从 React.js 中的本地 Json 文件获取图像 URL

IT技术 javascript reactjs
2021-05-14 11:11:09

我希望能够通过从 JSON 文件中获取 URL 来显示本地文件夹中的图像。到目前为止,我已经尝试过:

src={require(blog.imUrl)} src={blog.imgUrl} src={require( ${blog.imgUrl})}

使用 require 时遇到的错误:

错误:找不到module“../../images/safe-image.jpeg”

import { useHistory } from 'react-router-dom';
import { Col, Row, Container, Image } from 'react-bootstrap';
import blogArticles from './blog.json';
import './BlogCard.css';

export default function BlogCard() {
  const history = useHistory();

  function handleClick() {
    history.push('/`${blog.id}`');
  }

  return blogArticles.map((blog) => {
    return (
      <Container key={blog.id} className="blogContainer">
        <Row>
          <Col xs={6} md={6} lg={8}>
            <h3 className="blogTitle">{blog.title}</h3>
            <span className="blogBody">{blog.body.substring(0, 250)}...</span>
            <button onClick={handleClick} className="readMoreButton">
              Read More
            </button>
          </Col>
          <Col xs={4} md={4} lg={3} className="imageContainer">
            <Image src={require(blog.imgUrl)} roundedCircle />
          </Col>
        </Row>
      </Container>
    );
  });
}```


Here is my JSON File structure :

{
    "id": 3,
    "title": "abc",
    "body": "abcdefg",
    "author": "as",
    "imgUrl": "../../images/leon-biss.jpg"
}

2个回答

您可以使用它来导入和显示src文件夹中的图像(在 javascript 文件旁边):

import img from "./img1.png";
const imgComponent = () => <img src={img} />

但是由于您想从json文件中动态加载图像,您应该将图像放在文件夹 ( )images中的public文件夹中public/images/img1.png,然后您可以使用以下命令对其进行渲染:

<img src="/images/img1.png" />
  • 注意1:请注意,当前您的json文件包含相对于脚本文件的路径,但您应该将其更改为图像的路径public folder(如果您无法更改json文件,您也可以使用代码映射该 url。)
  • 注2:我假设您使用的是默认情况下creat-react-app它具有public文件夹。如果没有,请搜索how to serve static files in react.

我遇到了同样的问题,因为我在 src 文件夹中创建了一个图像文件夹,结果我无法显示图像。我所要做的就是解决这个问题:

  • 将图像文件夹移动到项目根文件夹的公共文件夹中。
  • 从 json 文件中,调用像 "/images/productImages/product1.jpeg" 这样的图像。

希望这也能为您解决问题。