reactjs - 导入 .csv 文件时反应 D3 错误 404
问题描述
我正在尝试使用csv
fromd3
在我的 Next.js 应用程序中呈现一些数据。按照本教程,我收到了 404 错误。我搜索了很多,正如视频中所示,它可以csv
与 React 一起使用。这是我的代码
import {csv} from 'd3';
import datacsv from './test.csv';
class Power extends Component {
...
componentDidMount() {
csv(datacsv).then(data=>{
console.log(data);
});
}
...
我已经仔细检查了文件的路径。
笔记。 我在 StackOverflow 中看到了一些关于这个主题的问题,但它们指的是 Node.js 或者没有得到回答。
解决方案
d3.csv
期望传递 URL,而不是文件路径或模块。
您可以将test.csv
文件移动到您的public/
文件夹,以提供d3.csv()
从中获取数据的有效位置,然后指向它。
import { csv } from 'd3';
class Power extends React.Component {
// ...
csv('/test.csv').then((data) => {
console.log(data);
});
// ...
}
或者,如果你想.csv
从 Next.js 应用程序的文件系统中读取文件,你需要安装csv-loader
它并将其添加到你next.config.js
的 webpack 配置中。
$ npm install csv-loader
// next.config.json
module.exports = {
webpack: (config) => {
config.module.rules.push({
test: /\.csv$/,
loader: 'csv-loader',
options: {
dynamicTyping: true,
header: true,
skipEmptyLines: true
}
});
return config;
}
};
然后,您可以test.csv
直接加载文件,而无需使用d3.csv
.
import datacsv from './test.csv';
class Power extends React.Component {
// ...
componentDidMount() {
console.log(datacsv);
}
// ...
}
推荐阅读
- go - Go 中的接收器(方法)放在哪里?
- swift - Swift 错误:无法分配给属性:“坐标”是不可变的
- php - PHP 文件无法连接到 sql 数据库,它显示错误 #1045 但代码上的值是正确的
- openssl - 在 Twisted 中将 TLS 版本设置为 1.2 返回 OpenSSL 错误
- javascript - 如何仅将EventListener添加到正文?
- .net - .NET web 异步调用包 Azure.Storage.Blobs 挂起
- javascript - 使用用户脚本修改 React 组件
- python - 为什么pycharm一直说没有名为'_tkinter'的模块???我是 python 和 pycharm 的新手
- java - 不支持 mapbox 中的一些细节,我可以手动添加吗?
- javascript - 如何给数组编号(在列表中)