【发布时间】:2023-03-29 01:47:01
【问题描述】:
我试图找出访问本地 JSON 文件并将其存储在当前状态的最佳方式。我希望我在正确的轨道上:)
Project.js
import React, { useState, useEffect } from "react";
import { useParams } from "react-router-dom";
// framer motion
import { motion } from "framer-motion";
const Project = (props) => {
const { projectID } = useParams();
const [project, setProject] = useState({});
useEffect(() => {
fetch('src/data/projects.json', {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
})
.then((res) => res.json())
.then((data) => console.log(data));
}, []);
return (
<motion.div exit={{ opacity: 0, transition: { duration: 1 } }}></motion.div>
);
};
export default Project;
JSON 文件
[
{
"title": "Example",
"id": "1",
"src": "example.png"
},
{
"title": "Example 2",
"id": "2",
"src": "example-2.png"
}
]
【问题讨论】:
-
你试过
console.log({res})吗?也许 JSON 本身的格式不是有效的。 -
你能试着去掉第二个对象后面的逗号吗?当我尝试使用实时代码时,这是一个愚蠢的猜测。
-
我可以知道你为什么使用 fetch 来加载本地
json file吗?您可以使用import正常导入json数据 -
@SifatHaque:我认为以这种方式获取 json 数据也没有任何问题 :)
-
@jmvdc 查看这篇文章Unexpected token < in JSON at position 0
标签: javascript json reactjs