suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Die Funktion set*** wird aufgerufen, das erneute Rendern der Funktionskomponente wird jedoch nicht ausgeführt.

Mein Skript sieht wie folgt aus,

Nachdem die

api das Element erhält, möchte ich die Komponente erneut rendern und EnhancedTable erscheinen lassen.

Aber mit diesem Skript ist der API-Abruf erfolgreich, aber die EnhancedTable wird nicht angezeigt.

response.data gibt die korrekten Daten zurück, es wird jedoch kein erneutes Rendern durchgeführt.

Was habe ich falsch gemacht?

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粉864872812231 Tage vor388

Antworte allen(1)Ich werde antworten

  • P粉517814372

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

    你能尝试一下吗:

    FileList

    {drawingItems && }

    顺便说一句,你可以改进 useEffect 部分

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

    Antwort
    0
  • StornierenAntwort