Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CSV不返回行_Javascript_Reactjs_D3.js - Fatal编程技术网

Javascript CSV不返回行

Javascript CSV不返回行,javascript,reactjs,d3.js,Javascript,Reactjs,D3.js,我整个上午都在讲这个。我一直在关注这个 我一直在努力让这项工作在反应,但不幸的是没有运气。我能够在控制台之前读取csv并记录数据,因此我知道它找到了正确的文件。我错过了什么 class Linegraph extends Component { componentDidMount() { var parseDate = d3.timeParse("%m/%d/%Y"); var margin = { left: 50, right: 20, top: 20, botto

我整个上午都在讲这个。我一直在关注这个

我一直在努力让这项工作在反应,但不幸的是没有运气。我能够在控制台之前读取csv并记录数据,因此我知道它找到了正确的文件。我错过了什么

class Linegraph extends Component {
    componentDidMount() {
    var parseDate = d3.timeParse("%m/%d/%Y");

    var margin = { left: 50, right: 20, top: 20, bottom: 50 };

    var width = 960 - margin.left - margin.right;
    var height = 500 - margin.top - margin.bottom;

    var max = 0;

    var xNudge = 50;
    var yNudge = 20;

    var minDate = new Date();
    var maxDate = new Date();

    d3.csv("MOCK_DATA.csv")
      .row(function(d) {
        return {
          month: parseDate(d.month),
          price: Number(d.price.trim().slice(1))
        };
      })
      .get(function(error, rows) {
        max = d3.max(rows, function(d) {
          return d.price;
        });
        minDate = d3.min(rows, function(d) {
          return d.month;
        });
        maxDate = d3.max(rows, function(d) {
          return d.month;
        });
    .................
(注意:这个问题不是关于新d3.fetch模块的现有Q/a问题的重复,因为它使用了一个行函数,这些Q/a中没有涉及)

由于您使用的是D3V5,因此必须将v4的XmlHttpRequest模式更改为v5的新Promises模式(请参阅)

因此,您的代码应该是:

d3.csv("MOCK_DATA.csv", function(d) {
        return {
            month: parseDate(d.month),
            price: Number(d.price.trim().slice(1))
        };
    })
    .then(function(rows) {
    //etc...
    });

请注意,作为第二个参数,row函数位于
d3.csv
函数中。

我使用的是哪个版本的d3?d3 v4,只是检查一下,因为
d3.csv
模式不适用于v5。哦,我使用的是v5,如何将其更改为适用于版本5?