Панель прогресса реакции

#javascript #reactjs

#javascript #reactjs

Вопрос:

Здравствуйте, мне нужно настроить индикатор выполнения. Итак, когда я нажимаю на кнопку, отображается индикатор выполнения, кнопка и содержимое внутри нее исчезают, индикатор прогресса начинает переходить на 0 100, а также показывает некоторый текст выше, и когда он достигает 100%, индикатор выполнения исчезает, а текст выше, но после этого появляется новый текст. Заранее спасибо

 
import React,{useEffect, useState} from 'react'
import LinearProgress from '@material-ui/core/LinearProgress'
const useStyles = makeStyles({
  root: {
    width: '100%',
  },
});

const Content =(props)=> {
const classes = useStyles();
const[hideContent, setHideContent]= React.useState(false) 
const [progress, setProgress] = React.useState(10);


function handleClick12 ()
{setHideEset(true) } 


useEffect(() => {
  const timer = setInterval(() => {
    setProgress((prevProgress) => (prevProgress >= 100 ? 10 : prevProgress   10));
  }, 800);
  return () => {
    clearInterval(timer);
  };
}, []);

    return (
             {!hideContent amp;amp;   
              <div className='esetNod__info'>         
              <h3>Hello</h3>             
              <Button onClick={handleClick12} className='fix__button'variant='outlined'></Button>
              <div >
              <LinearProgress value={progress} />
              </div>
              </div>
                 } 
              
           
       </div>
                      
    
    )
}

export default Content;
 

Комментарии:

1. Вам еще предстоит немало поработать над этим. Однако используете ли вы VS Code? Вы могли бы действительно извлечь выгоду из linting… найдите расширение eslint в VS Code. Еще один хороший вариант — Prettier. Когда я вставил ваш код в свой редактор, он загорелся, как рождественская елка с ошибками.

2. @TonyDrummond У меня оба установлены xd

3. @TonyDrummond. Причина, по которой он загорелся, как рождественская елка, ошибка заключалась в том, что я не ввел никакого импорта в этот вопрос

4. не могли бы вы перефразировать то, что вы пытаетесь выполнить здесь? это немного загадочно

5. индикатор выполнения, который загружается до 0 100%, а после достижения 100% он исчезает и показывает некоторый текст

Ответ №1:

Я пытался написать что-нибудь для вас:

 import React, { useState } from "react";
import LinearProgress from "@material-ui/core/LinearProgress";

const Content = () => {
    const [isLoading, setIsLoading] = useState(false);
    const [hasLoaded, setHasLoaded] = useState(false);
    const [progress, setProgress] = useState(0);

    const handleClick = () => {
        setIsLoading(true);
        const interval = setInterval(() => {
            setProgress((prevProgress) => {
                const next = prevProgress   10;
                if (next === 100) {
                    clearInterval(interval);
                    setIsLoading(false);
                    setHasLoaded(true);
                }
                return next;
            });
        }, 800);
    };

    if (!isLoading amp;amp; !hasLoaded) {
        return (
            <div className="esetNod__info">
                <h3>Pre load content</h3>
                <button onClick={handleClick} className="fix__button">
                    Load Content
                </button>
            </div>
        );
    } else if (isLoading amp;amp; !hasLoaded) {
        return (
            <diV>
                <h3>Loading content</h3>
                <LinearProgress value={progress} />
            </diV>
        );
    } else {
        return (
            <div>
                <h3>Post load content</h3>
            </div>
        );
    }
};

export default Content;