Rumah  >  Soal Jawab  >  teks badan

Menetapkan keadaan secara dinamik dalam React adalah tidak sah

Saya cuba menyediakan tatasusunan secara dinamik dan memaparkannya menggunakan cangkuk useState. Tetapi nampaknya array tidak ditetapkan. Inilah kod saya:

import React, { useState, useEffect } from "react";

export default ({ item }) => {
    const [attachments, setAttachments] = useState([]);
    const setAttachmentValues = function(response){
        setAttachments(response.data);
        
    }
    const fetchMedia = async ()=> {
        setAttachments([]);           
        await apiCall().then((response) => {                
            setAttachmentValues(response);                
        });
    }
    
    useEffect(() => {
        fetchMedia();
    }, []);
    return (
        <>
           <div className="w-full">
                {(attachments.map((ele) => {
                      <div>{ele}</div>
                )} 
        </>
    )
}

apiCall() akan mengembalikan pelbagai objek.

Dalam beberapa kes adalah sah untuk menetapkan keadaan dengan cara ini. Apakah isu sebenar di sini?

P粉366946380P粉366946380429 hari yang lalu405

membalas semua(1)saya akan balas

  • P粉868586032

    P粉8685860322023-09-09 10:58:22

    Jadi anda boleh membuat data

    import React, { useState, useEffect } from 'react';
    
    export default ({ item }) => {
      const [attachments, setAttachments] = useState([]);
    
      useEffect(() => {
        
        fetch('https://jsonplaceholder.typicode.com/users')
          .then((response) => response.json())
          .then((response) => {
            setAttachments(response);
            console.log(response);
          });
      }, []);
      return (
        <>
           <div>
            {attachments.map(item => <div key={item.username}> {item.username} </div> )}
          </div>
        </>
      );
    };

    balas
    0
  • Batalbalas