我已经使用 react-plotly.js 实现了一个散点图,我希望图表在页面布局更改时重新调整大小。但目前,图表的布局不会自行改变。如果我在图表上明确执行某些强制图表重绘的功能,那么只有图表宽度会发生变化。
我应用了 useResizeHandler 属性并将 autosize 设置为 true。但这也没有任何区别。
<Plot
useResizeHandler
style={{ width: '100%' }}
data={chartData}
onClick={(data) => this.handlePlotClick(data)}
type={'scatter'}
layout={this.layout} />
const layout = {
autosize: true,
dragmode: true,
margin: {
l: 5,
r: 5,
t: 10,
b: 10,
pad: 0,
autoexpand: true
},
hovermode: 'closest',
hoverlabel: {
bgcolor: 'rgba(0,0,0,1)',
bordercolor: 'rgba(200,200,200,1)'
},
height: '650',
yaxis: {
visible: false
},
xaxis: {
autorange: false,
showline: true,
fixedrange: false, // true disables range selection on main graph
rangeslider: {
range: this.state.sliderRange,
visible: true,
borderwidth: 1,
bordercolor: '#000'
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的屏幕截图中看到的,div.svg-container 与 main-svg 具有相同的宽度。但它仍然在右侧留下空白。我无法调试它为什么会那样做。如果我明确地对将重绘绘图的图表执行缩放,那么它的行为将正确无误。但我希望它在页面布局更改时自动调整大小。
小智 6
我也被这个问题困住了。从http://codrate.com/questions/how-can-trigger-the-window-resize-event-manually-in-javascript尝试 window.dispatchEvent(new Event('resize'))
当我的图表通过拖动调整大小时,我正在调用 resizeHandler。
resizeHandler = () => {
this.child.resizeHandler();
window.dispatchEvent(new Event('resize'));
}
Run Code Online (Sandbox Code Playgroud)
当调整图表大小时,图表总是自动缩放,所以当我的图表大小改变时,我基本上会触发窗口调整大小。因此,对您而言,当您检测到页面布局更改时,您可以触发窗口大小调整。
归档时间: |
|
查看次数: |
3043 次 |
最近记录: |