• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wielokrotny strzał do api w React i Axios

0 głosów
101 wizyt
pytanie zadane 2 maja 2021 w JavaScript przez Bakkit Mądrala (7,020 p.)
edycja 2 maja 2021 przez Bakkit

Cześć. Mam taki kod w komponencie funkcyjnym:

    const [info1, setInfo1] = useState('Loading...');
    const [info2, setInfo2] = useState('Loading...');
    const [info3, setInfo3] = useState('Loading...');
    const [info4, setInfo4] = useState('Loading...');
    const [info5, setInfo5] = useState('Loading...');

    axios.get('api/info')
        .then(({ data }) => {
            const { info1, info2, info3, info4, info5 } = data[0];

            console.log('Strzał do api');

            setInfo1(info1)
            setInfo2(info2)
            setInfo3(info3)
            setInfo4(info4)
            setInfo5(info5)
        });

Problem polega na tym, że console.log() wykonuje się 7 razy. Ktoś pomoże?

komentarz 2 maja 2021 przez ScriptyChris Mędrzec (171,760 p.)

A ile razy używasz ten komponent?

Przy okazji, tego typu akcje - jak wykonanie kodu przy inicjacji komponentu - lepiej wykonywać w useEffect.

1
komentarz 2 maja 2021 przez Bakkit Mądrala (7,020 p.)
Kompletnie zapomniałem o tym hooku. Wrzuciłem wszystko w useEffect, do tego dodałem pustą tablicę jako drugi argument i już kod wykonuje się jeden raz. Dziękuję!
komentarz 2 maja 2021 przez ScriptyChris Mędrzec (171,760 p.)
Spoko, ale czy ten komponent jest używany raz, czy wiele razy?
1
komentarz 2 maja 2021 przez Bakkit Mądrala (7,020 p.)
Tylko 1 raz
komentarz 2 maja 2021 przez Bakkit Mądrala (7,020 p.)

@ScriptyChris, masz na myśli użycie useContext w przypadku gdyby komponent był używany wielokrotnie?

komentarz 2 maja 2021 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)
Dlaczego wrzuciłeś pustą tablicę jako drugi argument w useEffect ?
1
komentarz 2 maja 2021 przez Bakkit Mądrala (7,020 p.)
Aby useEffect wykonywał się tylko przy pierwszym renderowaniu komponentu

1 odpowiedź

+1 głos
odpowiedź 2 maja 2021 przez niezalogowany
edycja 2 maja 2021
komentarz 2 maja 2021 przez Bakkit Mądrala (7,020 p.)
Dwa razy ten sam link podałeś.
1
komentarz 2 maja 2021 przez niezalogowany
Poprawione ;)

Powodzenia

Podobne pytania

0 głosów
1 odpowiedź 147 wizyt
pytanie zadane 26 maja 2017 w JavaScript przez Frozenfroggie Użytkownik (990 p.)
+2 głosów
1 odpowiedź 270 wizyt

86,460 zapytań

135,216 odpowiedzi

300,377 komentarzy

57,209 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...