Реакция: выбор даты занимает 18 секунд - PullRequest
0 голосов
/ 22 апреля 2020

Я делаю проект и мне нужно реализовать выбор даты, он работает, но занимает 18 секунд, что очень плохо. Может быть, потому что мое приложение загружает массив из 40 КБ, который отображается на линейном графике? В консоли выдается следующее сообщение:

[Violation] Forced reflow while executing JavaScript took 18133ms

Как я могу улучшить свой код? Мой код следующий.

enter image description here

Код основного родительского компонента

import React, { useState, useEffect } from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Paper from '@material-ui/core/Paper';
import Grid from '@material-ui/core/Grid';
import Labels from './Labels';
import DatePickerStart from './DatePickerStart';
import DatePickerEnd from './DatePickerEnd';
import LineGraph from './LineGraph';
import temperatureData from '../temperature.json';

const useStyles = makeStyles((theme) => ({
    root: {
        flexGrow: 1,
    },
    paper: {
        padding: theme.spacing(2),
        textAlign: 'center',
        color: theme.palette.text.secondary,
    },
}));

export default function AutoGrid() {
    const classes = useStyles();
    const [startDate, setStartDate] = useState(new Date());
    const [endDate, setEndDate] = useState(new Date());

    const handleStartDateChange = startDate => {
        //console.log(date);
        setStartDate(startDate);
    };

    const handleEndDateChange = endDate => {
        //console.log(date);
        setEndDate(endDate);
    };
    return (
        <div className={ classes.root }>
            <Grid container spacing={ 3 }>
                <Grid item xs={ 3 }>
                    <Paper className={ classes.paper }>
                        <Labels />
                    </Paper>
                </Grid>
                <Grid item xs={ 6 }>
                    <DatePickerStart startDate={ startDate } handleStartDate={ handleStartDateChange } />
                    <DatePickerEnd endDate={ endDate } handleEndDate={ handleEndDateChange } />
                    <Paper className={ classes.paper }>
                        <LineGraph data={ temperatureData } />
                    </Paper>
                </Grid>
            </Grid>
        </div>
    );
};

компонент Datepicker

import React из 'реакции'; Импортировать DatePicker из «response-date-picker»;

export default function DatePick(props) {


    return (
        <div>
            <DatePicker
                onChange={ props.handleStartDate }
                value={ props.startDate }
            />
        </div>
    );

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...