d3.csv返回console.log中的index.html内容

时间:2018-04-24 11:49:51

标签: javascript reactjs csv d3.js

我正在使用带有reactJS的d3 v5。我在反应'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;

和List正在以下'App'类中导入

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中的List文件中调用console.log,我将在控制台中获取index.html文件的内容。但我想要CSV内容。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以首先尝试使用 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;

答案 1 :(得分:1)

我遇到了同样的问题,这就是我如何解决的问题。检查数据是否与[[ "$bar" == "$foo" ]]文件位于同一目录中。就我而言,我的index.html文件位于index.html文件夹中,因此我创建了public/。然后,您可以尝试public/data/data.csv读取数据。