response-pivottable при перетаскивании строк и столбцов всегда сбрасывает значение по умолчанию в реагировать - PullRequest
0 голосов
/ 10 марта 2020

Я использую https://react-pivottable.js.org/ для варианта использования

Реализация такая, как показано ниже

У меня есть родительский компонент, который получает ответ от вызова API

экспорт класса по умолчанию PivotTableUISmartWrapper extends React.PureComponent { - это конструктор, который получает реквизиты от родителя

  constructor (props) {
        super(props);
        this.state = {
            pivotTableInput: props.gridInputData,
            pivotState: props
        };
    }

/ ** * Метод жизненного цикла для обновления реквизита в компоненте * / , как только я получу ответ, я связываю pivotState и присваиваю значение, как показано ниже

    static getDerivedStateFromProps (nextProps, state) {
        console.log(nextProps);
        return {
            mode: 'demo',
            pivotState: {
                data: nextProps.gridInputData,
                rows: ['SRN'],
                cols: ['AcquisitionSystemType'],
                aggregatorName: 'Integer Sum',
                vals: connectivityHeader,
                rendererName: 'Table',
                plotlyOptions: { width: 1200, height: 500 },
                plotlyConfig: {},
                tableOptions: {
                    clickCallback: function (e, value, filters, pivotData) {
                        var names = [];
                        pivotData.forEachMatchingRecord(filters, function (
                            record
                        ) {
                            names.push(record.SRN);
                        });
                    }
                }
            }
        };
    }
}

Render отобразит состояние, как показано ниже

  render () {
        return (
            <Container className="app-pivot-table-container" fluid={true}>
                <Row noGutters="true">
                    <Col xs={12} md={12}>
                        <h2 className="text-center">{this.state.filename}</h2>
                    </Col>
                    <Col xs={12} md={12} className="app-widget-content">
                        <div className="app-pivot-wrapper">
                            <PivotTableUI
                                renderers={Object.assign(
                                    {},
                                    TableRenderers,
                                    createPlotlyRenderers(Plot)
                                )}
                                {...this.state.pivotState}
                                onChange={s => this.setState({ pivotState: s })}
                                unusedOrientationCutoff={Infinity}
                            />
                        </div>
                    </Col>
                </Row>
            </Container>

        );
    }

, который прекрасно работает, когда мы загружаем компонент

, но каждый раз, когда перетаскивание или изменения вносятся в такие параметры, как показ линейного графика или перетаскивание строки или столбца, изменения не обновляются

Я упал, в состоянии получения производных всегда устанавливается опция по умолчанию

Скажите, пожалуйста, что я делаю неправильно, чтобы перетаскивание других столбцов работало

...