在amchart3上重置缩放 - 在数据更新时做出反应

时间:2016-10-19 11:43:19

标签: reactjs amcharts

如何在数据更新时重置图表缩放。我正在使用amcharts并做出反应: https://github.com/amcharts/amcharts3-react

我在图表中使用:

 <div className='row' id={this.props.tileid} style={{height: '80%', width: '100%'}} >
    <AmCharts ref={`chart_${this.props.tileid}`} {...this.chart} dataProvider={this.props.data()} />
 </div>

我的数据支柱被切片以包含/排除数据。在数据包括时,数据在图表中呈现,但图表仍然在前一级别缩放,用户必须在所选数据变为可见之前缩小。我只想让缩放级别最大限度地缩小数据更新。

我有:

this.chart.zoomOutOnDataUpdate = true; 

但这没有效果..

感谢。

1 个答案:

答案 0 :(得分:0)

为实现这一目标,我在反应组件中添加了以下内容:

componentWillReceiveProps(nextprops){
  if(this.props.data !== nextprops.data){
     this.setState({zoomoutflag: true})
  }else{
     this.setState({zoomoutflag: false})
  }
  if(nextprops)
     this.chart = this.initChart(nextprops);
}

componentDidUpdate(){
   if(this.refs.chartref && this.state.zoomoutflag){
     if(this.refs.chartref.state.chart){
       this.refs.chartref.state.chart.zoomOut();
     }
   }

}

这对我来说效果很好,现在每次通过过滤器更改来更新数据时,都会设置zoomoutflag并将图形设置为缩小状态。