Rumah  >  Soal Jawab  >  teks badan

Fungsi set*** dipanggil tetapi pemaparan semula komponen fungsi tidak dilaksanakan.

Skrip saya kelihatan seperti di bawah,

Selepas

api mendapat item itu, saya mahu memaparkan semula komponen dan membuat EnhancedTable muncul.

Tetapi dengan skrip ini, pengambilan api berjaya, tetapi EnhancedTable tidak muncul.

response.data mengembalikan data yang betul, tetapi tiada pemaparan semula dilakukan.

Di mana silap saya?

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粉864872812220 hari yang lalu362

membalas semua(1)saya akan balas

  • P粉517814372

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

    Boleh cuba:

    FileList

    {drawingItems && }

    Dengan cara ini, anda boleh menambah baik bahagian useEffect

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

    balas
    0
  • Batalbalas