【问题标题】:d3.csv returns index.html content in console.logd3.csv 在 console.log 中返回 index.html 内容
【发布时间】:2018-10-04 16:08:44
【问题描述】:

我正在使用带有 reactJS 的 d3 v5。我在 react 'List' 类中调用 d3.csv,如下所示:

import React from 'react';
import * as d3 from 'd3';

class List extends React.Component{

componentDidMount(){
d3.csv("./data/data.csv").then(function(d, error){
    console.log(d);
});
}

render(){
        return(
        <div> </div>
        );
    }
} 
  export default List;

并且列表正在以下“应用”类中导入

import React, { Component } from 'react';
import logo from './logo.svg';
import List from './components/list/List';
import './App.css';

class App extends Component {
  render() {
    return (
      <div className="App">
        <header className="App-header">
          <img src={logo} className="App-logo" alt="logo" />
          <h1 className="App-title">Welcome to React</h1>
        </header>          
        <List/> 
      </div>      
    );
  }
}
 export default App;

以下是“index.js”代码:

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();

'root' 是 index.html 中的一个 div id。通过在 d3.csv 内的列表文件中调用 console.log,我在控制台中获取 index.html 文件的内容。但我想要 CSV 内容。

【问题讨论】:

  • @altocumulus 现在我已经清楚地发布了问题所在。如果您了解问题,请提供帮助。

标签: javascript reactjs csv d3.js


【解决方案1】:

如果您使用钩子和 useState,请确保 URL 是字符串,并且在使用数据之前未解析为对象。

Before Input

Before Output

After Input

After Output

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

我遇到了同样的问题,这就是我解决它的方法。检查数据是否与index.html 文件位于同一目录中。就我而言,我的index.html 文件位于public/ 文件夹中,因此我创建了public/data/data.csv。然后您可以尝试d3.csv('./data/data', function(data){...}) 读取数据。

【讨论】:

    【解决方案3】:

    您可以先尝试使用 import 语句来加载 CSV 文件。 :)

    import React from 'react';
    import * as d3 from 'd3';
    import data from "./data/data.csv";
    
    class List extends React.Component{
      componentDidMount(){
        d3.csv(data).then(function(d, error){
          if (error) {
            console.log(error);
          } else {
            console.log(d);
          };
        });
      }
    
      render(){
        return(
          <div> </div>
        );
      }
    } 
    
    export default List;
    

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 2013-06-11
      • 2021-01-11
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多