reactjs - 我收到此错误错误:找不到模块'../list/songQueue.jpg',使用json-server我正在传递我的图像文件的路径
问题描述
[enter image description here][1]
我的一个组件有这个
<img className='list-image' src={require(props.list.imgSrc)} ></img>
我的 db.json 文件
{
"songlist": [
{id:1,
"name":"xyz",
"imgSrc":"../list/songQueue.jpg"}
]
}
解决方案
服务器端
db.json
{
"songlist": [
{
"id": "01",
"name": "abc",
"imgSrc": "/images/songQueue.jpg"
},
{
"id": "02",
"name": "def",
"imgSrc": "/images/songQueue2.jpg"
}
]
}
index.js
const jsonServer = require('json-server');
const server = jsonServer.create();
const path = require('path');
const router = jsonServer.router(path.join(__dirname, 'db.json'));
const middlewares = jsonServer.defaults();
server.use(middlewares);
server.use(router);
server.listen(3333, () => {
console.log('JSON Server is running on port 3333');
});
包.json
{
"name": "react-json-server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"json-server": "^0.16.3"
},
"devDependencies": {
"nodemon": "^2.0.7"
}
}
客户端
- 公开创建一个“图像”文件夹并将所有图像放入其中。
- 使用fetch()函数获取数据(+组件渲染时的useEffect 钩子)
- 将数据存储在状态(数组)中(使用useState 挂钩)
- 使用map()函数显示该数组中的数据
- 用process.env.PUBLIC_URL指明图片的路径
应用程序.js
import React, {useState, useEffect} from 'react';
function App() {
const [data, setData] = useState([]);
const getData = async () => {
const response = await fetch("http://localhost:3333/songlist"); // server port (3333)
response
.json()
.then(response => setData(response))
.catch(error => console.log(error));
}
useEffect(() => {
getData();
}, []);
return (
<div>
{
data.map((song) => (
<img className='list-image' alt='' key={song.id} src={process.env.PUBLIC_URL + song.imgSrc} />
))
}
</div>
);
}
export default App;
推荐阅读
- assembly - 为什么没有设置进位标志?
- javascript - 从另一个页面上的触发器加载页面后是否可以执行代码?JS
- websphere-liberty - 在 websphere liberty 中获取数据源连接
- ios - SwiftUI - 使用淡入淡出动画更改文本
- azureservicebus - QueueClient 获取预定消息
- shell - 如何在以更高权限运行的 Window 上设置 HWND_TOPMOST?
- javascript - 循环遍历对象数组并使用 Javascript 在 HTML 中一次仅显示对象属性
- python - 如何将数据从 csv 文件导入和导出到 HTML?
- node.js - 使用 Node.js 和 MongoDB 限制返回的文档
- r - 要替换的项目数不是替换长度错误的倍数