当输入类型发生变化时,为什么这个d3组件不工作?

时间:2015-11-17 22:50:13

标签: javascript d3.js reactjs

我跟随this tutorial for React and d3一起关注,现在我尝试使用状态所遵循的架构。

我正在更改从

提供初始状态的功能
var randomData = [];
d3.range(settings.numDataPoints).forEach(function() {
      var newNumber1 = Math.floor(Math.random() * settings.maxRange());
      var newNumber2 = Math.floor(Math.random() * settings.maxRange());
      randomData.push([newNumber1, newNumber2]);
    });

var randomData = d3.range(settings.numDataPoints).map(function(thisPoint) {
      var newNumber1 = Math.floor(Math.random() * settings.maxRange());
      var newNumber2 = Math.floor(Math.random() * settings.maxRange());
      return {ind: thisPoint, coords: [newNumber1, newNumber2]};
    });

因此,我还必须从

更改DataCircles renderCircles()函数
  renderCircles: function(coords) {
    var props = {
      cx: this.props.xScale(coords[0]),
      cy: this.props.yScale(coords[1]),
      r: 2,
      key: uuid.v4()
    };
    return (
      <circle {...props}>
      </circle>
    );
  }

  renderCircles: function(coordsObj) {
    var props = {
      cx: this.props.xScale(coordsObj.coords[0]),
      cy: this.props.yScale(coordsObj.coords[1]),
      r: 2,
      key: uuid.v4()
    };
    return (
      <circle {...props}>
      </circle>
    );
  }

这会导致教程中创建的XY网格上所有先前很好渲染的点消失,只留下一个空白图形:

blank graph

我已记录两个功能范围内的对象,并验证数据是否正确生成。它有什么问题?

1 个答案:

答案 0 :(得分:1)

你正在改变randomData的结构,我想你错过了它也是sizeof(mpz_t)组件的道具,所以你也需要更新它:

mpz_t