【发布时间】:2018-08-12 03:46:38
【问题描述】:
我正在尝试为我的每个 d3js 元素使用 reactjs 组件。父组件绘制一个图形,子组件应该在它周围画一个甜甜圈。但是现在渲染函数将它们分开绘制。以下代码显示了它如何在父组件中附加图形 svg(在 componentDidMount() 内):
this.svg = select(this.container).append('svg')
.attr('width', width)
.attr('height', height)
.append('g')
.classed('network', true)
.attr('transform', `translate(${width / 2},${height / 2})`);
父组件渲染函数代码如下:
render() {
return (
<div>
<div className="container" ref={(container) => { this.container = container; }} />
<div className="donut" >
<DonutComponent />
</div>
</div>
);
}
我认为子组件中存在一个问题,我尝试了select("#container"),但没有找到。所以我不得不使用select("body"),它将甜甜圈附加到一个单独的div:
var svgContainer = select("body")
.append("svg")
.attr("width", width)
.attr("height", height)
.style("border", "1px solid");
我应该如何在子组件中更改它?我需要更改父渲染功能吗?
【问题讨论】: