recherche

Maison  >  Questions et réponses  >  le corps du texte

La fonction set*** est appelée mais le nouveau rendu du composant fonction n'est pas exécuté.

Mon script ressemble à ci-dessous,

Une fois que l'

api a récupéré l'élément, je souhaite restituer le composant et faire apparaître EnhancedTable.

Mais avec ce script, la récupération de l'API réussit, mais EnhancedTable n'apparaît pas.

response.data renvoie les données correctes, mais aucun nouveau rendu n'est effectué.

Où est-ce que je me suis trompé ?

const MetaPanel = (props) =>{
    const [drawingItems,setDrawingItems] = React.useState([]);
    
    useEffect(() => {
        console.log("File List");
        var formData = new FormData();
        axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
        axios.defaults.xsrfCookieName = "csrftoken";
        axios.defaults.withCredentials = true;
        axios.get(`/api/drawings/`)
            
        .then(function (response) {
            console.log(response.data);
            setDrawingItems(response.data);
          
        })
        .catch(function (response) {
            console.log(response);
        });
    },[]);
    
    
    return (
    <div>
    <div>
        <p>FileList</p>
        {drawingItems.length != 0 &
           
            <EnhancedTable data={drawingItems}></EnhancedTable>
        }
    </div>
    </div>

    );
}

P粉864872812P粉864872812310 Il y a quelques jours488

répondre à tous(1)je répondrai

  • P粉517814372

    P粉5178143722024-04-05 09:14:59

    Pouvez-vous l'essayer :

    FileList

    {drawingItems && }

    Au fait, vous pouvez améliorer la partie useEffect

    useEffect(() => {
            const fetchData= async()=>{
              const response = await axios.get(`/api/drawings/`)
              if(response){
                setDrawingItems(response?.data);
              }
            }
           fetchData() 
        },[]);

    répondre
    0
  • Annulerrépondre