Я столкнулся с проблемой, когда панель мод полностью исчезает, когда я добавил событие Plotly для взаимодействия с диаграммой и вручную удалил трассировку при переключении легенды.
Есть ли еще одно событие, которое необходимо вызвать до / после запуска Plot.deleteTrace? Я также пробовал Plotly.restyle и Plotly.react с теми же результатами.
import React, { useRef } from 'react';
import Plot from 'react-plotly.js';
import Plotly from 'plotly.js';
const DataChart = (props) => {
const { data, layout, scrollZoom } = props;
const dataChartNode = useRef();
const handleOnLegendClick = (eventdata) => {
{/* Custom code when interacting with the legend labels */}
Plotly.deleteTraces(dataChartNode.current.el, eventdata.curveNumber);
// Plotly.react(dataChartNode.current.el, {visible: false}, [eventdata.curveNumber]);
// Plotly.restyle(dataChartNode.current.el, {visible: false}, [eventdata.curveNumber]);
}
return (
<Plot
ref={dataChartNode}
data={data}
layout={{
...layout,
dragmode: 'pan'
}}
config={{
displaylogo: false,
modeBarButtonsToRemove: [
'select2d', 'lasso2d', 'autoScale2d', // 2D options
'toggleSpikelines'
],
responsive: true,
// scrollZoom,
showTips: false
}}
onLegendClick={handleOnLegendClick}
/>
)
}
export default DataChart;
Демо: https://codesandbox.io/s/relaxed-easley-97jrn