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

ReactJs - Fetch w funkcji render.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
549 wizyt
pytanie zadane 21 lipca 2022 w JavaScript przez kubekszklany Gaduła (3,250 p.)

Witam. Chciałem zrobić gui w react'cie, które wyświetlało by panel użytkownika lub formularz logowania, bazując na tym czy użytkownik jest zalogowany czy nie. Jednak nie umiem pobrać tych danych w żaden sposób, bo render nie może być asynchroniczny, a fetch nie może być synchroniczny, przez co poniższy kod nie działa. Wie ktoś jak to rozwiązać?

    render()
    {
        fetch('./api/user/', {method: 'GET',}).then(result =>
        {
            if(Boolean.valueOf(result.text()))
            {
                return this.panel();
            }
            else
            {
                return this.forms();
            }
        });
    }
    
    panel()
    {
        return <h1>User Panel</h1>
    }
    
    forms()
    {
        return <h1>Login / Register</h1>
    }

W tym momencie mam błąd your render method should have a return statement.

1 odpowiedź

+1 głos
odpowiedź 21 lipca 2022 przez rafal.budzis Szeryf (85,380 p.)
musisz wykorzystać stan czyli this.state / setState lub hooka useState. W nim zapisujesz sobie dane. Na start zapisujesz sobie w nim że trwa pobieranie i wtedy w funkcji render wyświetlasz ładny loader. Po pobraniu danych ustawiasz state. Za każdym razem gdy zmieniasz state lub propsy komponent uruchomi funkcje render i pokaże nowe dane na podstawie pobranych :)
komentarz 22 lipca 2022 przez jankustosz1 Nałogowiec (36,800 p.)
Warto jeszcze dodać, że fetch powinno być wykonane w componentDidMount lub w przypadku hooków useEffect (Druga opcja dużo wygodniejsza)

Podobne pytania

0 głosów
0 odpowiedzi 98 wizyt
pytanie zadane 7 września 2022 w JavaScript przez castor_fiber Użytkownik (800 p.)
0 głosów
1 odpowiedź 831 wizyt
pytanie zadane 29 kwietnia 2021 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)
+1 głos
1 odpowiedź 425 wizyt
pytanie zadane 2 kwietnia 2021 w JavaScript przez Oskar Szkurłat Bywalec (2,780 p.)

93,182 zapytań

142,196 odpowiedzi

322,002 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2005p. - Łukasz Siedlecki
  7. 1964p. - CC PL
  8. 1785p. - Michal Drewniak
  9. 1744p. - rafalszastok
  10. 1724p. - Adrian Wieprzkowicz
  11. 1684p. - Mikbac
  12. 1624p. - Anonim 3619784
  13. 1520p. - Marcin Putra
  14. 1480p. - ssynowiec
  15. 1365p. - Dawid128
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...