cari

Rumah  >  Soal Jawab  >  teks badan

Hantar tatasusunan kepada komponen

<p>Saya baru mengenali React dan memerlukan bantuan dengan perkara berikut..</p> <p>Saya mempunyai komponen yang menerima senarai tatasusunan untuk memaparkan komponen dan memerlukan komponen berasingan untuk memanipulasi tatasusunan</p> <p>Komponen yang diberikan: </p> <pre class="brush:php;toolbar:false;">export function DashboardContent() { kembali ( <Grid> <Grid.Col sm={12} md={12} lg={4}> <Kad Profil /> </Grid.Col> <Grid.Col sm={12} md={12} lg={8}> <Flex direction="column" h="100%" justify="space-antara" gap="md"> <Kad Selamat Datang /> <StatsGroup data={mockData} /> </Flex> </Grid.Col> <Grid.Col sm={12} md={12} lg={8}> <Kad Baki /> </Grid.Col> <Grid.Col sm={12} md={12} lg={4}> <Kad Gambaran Keseluruhan /> </Grid.Col> </Grid> ); }</pre> <p>mockData ialah tempat saya perlu menghantar tatasusunan melalui panggilan API Pada masa ini menghantar data simulasi berikut: </p> <pre class="brush:php;toolbar:false;">export const mockData = [ { tajuk: 'ABC', nilai: '$7,999', perbezaan: 50, }, { tajuk: 'XXX', nilai: '$4,00', perbezaan: -13, }, { tajuk: 'Nol', nilai: '$ 0.745', perbezaan: 1, }, ];</pre> <p>Memerlukan bantuan js komponen baharu yang boleh mengurus dan membuat panggilan API secara bebas dan menghantar tatasusunan dalam format yang diterangkan dalam simulasi.</p> <p>Telah mencuba kod berikut tetapi tidak berjaya, sebarang bantuan amat kami hargai</p> <pre class="brush:php;toolbar:false;">import React, { useEffect, useState } daripada 'react'; import axios daripada 'axios'; antara muka CustomArray { tajuk: rentetan; nilai: rentetan; perbezaan: nombor; } token const = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; const axiosInstance = axios.create({ tajuk: { Keizinan: `Pembawa ${token}`, }, }); const Penggunaan = () => const [pengguna, setUsers] = useState([]); const fetchUsers = async () => respons const = tunggu axios.get( 'https://myrestservices.com/api/v2/organizations/AXZ/usage' ); const usersData = response.data; const usersArray = usersData.map(user => ({ tajuk: user.title, nilai: user.value, perbezaan: user.diff, })); setUsers(usersArray); }; useEffect(() => { fetchUsers(); }, []); kembali pengguna; }; eksport lalai Penggunaan;</pre> <p><br /></p>
P粉006540600P粉006540600506 hari yang lalu596

membalas semua(1)saya akan balas

  • P粉352408038

    P粉3524080382023-08-16 00:58:35

    Perkara pertama yang perlu anda lakukan ialah menukar pelaksanaan Penggunaan kepada sesuatu yang serupa dengan cangkuk tersuai bertindak balas

    const useApiData = (apiUrl) => {
      const [data, setData] = useState([]);
    
      const fetchData = async () => {
        try {
          const response = await axios.get(apiUrl);
          const responseData = response.data;
    
          const dataArray = responseData.map(item => ({
            title: item.title,
            value: item.value,
            diff: item.diff,
          }));
    
          setData(dataArray);
        } catch (error) {
          console.error('Error fetching data:', error);
        }
      };
    
      useEffect(() => {
        fetchData();
      }, [apiUrl]);
    
      return data;
    };
    
    export default useApiData;

    Kemudian buat perubahan berikut di dalam komponen StatsGroup untuk memaparkan data ini.

    const StatsGroup = ({ apiData }) => {
      return (
        <div>
          {apiData.map(item => (
            <div key={item.title}>
              <p>Title: {item.title}</p>
              <p>Value: {item.value}</p>
              <p>Diff: {item.diff}</p>
            </div>
          ))}
        </div>
      );
    };
    
    export default StatsGroup;

    Jadi, untuk mewujudkan pautan antara cangkuk tersuai dan komponen StatGroup, mula-mula panggil cangkuk tersuai dan kemudian selepas mendapat keputusan, hantar data ke prop komponen StatGroup seperti yang ditunjukkan di bawah.

    const DashboardContent = () => {
      // 使用您想要从中获取数据的任何API URL
      const apiUrl = 'https://myrestservices.com/api/v2/organizations/AXZ/usage';
      
      const apiData = useApiData(apiUrl);
    
      return (
        <div>
          <h1>Stats Group</h1>
          <StatsGroup apiData={apiData} />
        </div>
      );
    };
    
    export default DashboardContent;

    balas
    0
  • Batalbalas