Я новичок в реагировании на js и пытаюсь создать сводную таблицу, используя React Pivot table. Я хочу иметь возможность выбирать набор данных с помощью выпадающего меню выбора, обновлять состояние и заново отображать полную таблицу всякий раз, когда происходит изменение в выпадающем списке, как в примере jquery, показанном здесь https://pivottable.js.org/examples/rcsvs.html
Это работает, прежде чем я сделаю какие-либо выборы или изменения в сводной таблице. Я могу переключаться между 2 наборами данных и изменениями состояния в сводной таблице. Но когда я выбираю размер сводной таблицы и использую сводную таблицу, после этого момента изменение меню выбора не помогает мне изменить состояние сводной таблицы. Пожалуйста, помогите.
Вот мой код.
import React from 'react';
import PivotTableUI from 'react-pivottable/PivotTableUI';
import 'react-pivottable/pivottable.css';
import TableRenderers from 'react-pivottable/TableRenderers';
import Plot from 'react-plotly.js';
import createPlotlyRenderers from 'react-pivottable/PlotlyRenderers';
// create Plotly renderers via dependency injection
const PlotlyRenderers = createPlotlyRenderers(Plot);
const data1 = [{'Country':'USA','Sales':45000},
{'Country':'USA','Sales':50000},{'Country':'CA','Sales':15000}]
const data2 = [{'Product':'Sofa','Sales':5000},{'Product':'Dinner
Table','Sales':50000},{'Product':'Chair','Sales':15000}]
const dataDic = {'Region':data1,'Products':data2}
class App extends React.Component {
constructor(props) {
super(props);
this.state = {selectedOption: 'Region'};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange(event) {
this.setState({selectedOption: event.target.value});
}
handleSubmit(event) {
alert('You have selected ' + this.state.selectedOption);
event.preventDefault();
}
render() {
return <div>
<select defaultValue="Region" onChange={(e)=>
this.handleChange(e)}>
<option value="Region">Region</option>
<option value="Products">Products</option>
</select>
<br/>
<br/>
<PivotTableUI
data={dataDic[this.state.selectedOption]}
onChange={s => this.setState(s)}
renderers={Object.assign({},TableRenderers)}//,PlotlyRenderers)}
{...this.state}
/>
</div>;
}
}
export default App;