10

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

http://jsfiddle.net/xpko4e7e/

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

预计会在所有条形图上看到“标签”文本。

更新
例如,如果我有一个图表,其中有多条线,每条线都有一些标签,但在渲染时,一些值高于另一个。如何克服这个问题?

图像预览

4

2 回答 2

16

而不是返回一个 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/

于 2017-08-22T08:20:04.080 回答
2

我知道这个问题有点老了,但问题仍然存在。我们不能直接将 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>
        );
  }
});
于 2020-09-25T17:17:52.437 回答