Hook useState

Kawka
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:24
0

Mam taką funkcję

Kopiuj
    const handleSubmit = (event) => {
        event.preventDefault()
        validateForm(name, surname, email, password, setErrors)
        console.log(errors)
        if(errors.length === 0) {
            register(user)
        }
    }

do funkcji validateForm przekazuje jako ostatni parametr funkcję setującą stan errors jednak dostęp do tego stanu mam dopiero po drugim wywołaniu handleSubmit, a chciałbym mieć od razu dostęp do errors

edytowany 1x, ostatnio: Kawka
UR
  • Rejestracja:około 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
1

Ustawianie stanu w reactcie jest asynchroniczne, stad tutaj raczej nigdy nie wyciagniesz za pierwszym razem danych ze stanu, bo jeszcze ich tam nie ma.

Kawka
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:24
0

To raczej nie to bo jak console loguje stan w settimeout po 5 sekundach to dalej ich nie ma

MasterOf
  • Rejestracja:ponad 7 lat
  • Ostatnio:9 miesięcy
  • Postów:466
2

Czemu nie użyjesz useEffect?
Sprawdzasz czy state się zmienił i gotowe ;)

Kopiuj
const [count, setCount] = React.useState(0)

  React.useEffect(() => {
    if (count > 0) {
      console.log(count)
    }
  }, [count]);

edytowany 2x, ostatnio: MasterOf
UR
  • Rejestracja:około 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:360
0

To raczej nie to bo jak console loguje stan w settimeout po 5 sekundach to dalej ich nie ma

O closure nie słyszał.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.