【发布时间】:2021-06-06 11:49:38
【问题描述】:
我正在开发一个使用 create-react-app 构建的 React 项目,并且对如何使用 useEffect() 引用本地 JSON 文件感到困惑。
我的目录结构如下:
public
src
components
data
test.json
App.js
在 App.js 中,我使用 useEffect() 和 fetch() 来获取 JSON 文件。
useEffect(() => {
const getData = () => {
fetch('./data/test.json'
, {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
}
).then(function(response) {
return response.json();
}
).then(function(myJson) {
// lots of processing happens
});
};
getData();
setTheContent(toUse);
},[slug]);
但我在控制台中得到了 http://localhost:3000/data/test.json 的 404。
如果我将我的数据文件夹放在公共目录中(并保持 fetch 路径不变),它可以正常工作,但我的理解是我为此 shouldn’t use the public directory。
另外一点信息:我使用的是useEffect(),而不是仅仅导入 JSON 文件,因为我最终需要根据 URL 参数导入不同的数据文件。
【问题讨论】:
-
你可以像这样将文件导入到你的 app.js 中:从 './data/test/json' 导入数据,然后在你的 fetch 中你可以引用数据导入