重新定制自定义标签

时间:2017-02-02 20:46:09

标签: reactjs charts

React Recharts的自定义标签不适用于条形图。

  

http://jsfiddle.net/xpko4e7e/

 <Bar dataKey="pv"  fill="#8884d8"  label={<CustomLabel/>} />

预计会在所有栏上看到“标签”文字。

2 个答案:

答案 0 :(得分:5)

而不是返回div尝试返回文本SVG元素

const CustomizedLabel = React.createClass({
  render () {
    const {x, y, stroke, value} = this.props;
		
   	return <text x={x} y={y} dy={-4} fill={stroke} fontSize={10} textAnchor="middle">{value}</text>
  }
});

然后添加

<Bar dataKey="pv"  fill="#8884d8"  label={customLabel} />

就像我在这里所做的那样,http://jsfiddle.net/CharukaK/6u08o2oa/1/

答案 1 :(得分:1)

我知道这个问题有点老了,但问题仍然存在。我们不能将HTML元素直接用于自定义标签。仅SVG元素正在工作。但是...

SVG支持的元素称为<foreignObject>

所以这样的事情会起作用:

const CustomLabel  = React.createClass({ 
  render() {  
        return (
          <g>
            <foreignObject x={0} y={0} width={100} height={100}>
              <div>Label</div>
            </foreignObject>
          </g>
        );
  }
});