Tämä johtuu siitä, että setState muuttaa tilaa ja aiheuttaa uudelleenrenderöinnin. Tämä voi olla kallis toiminto, ja sen synkronointi saattaa jättää selaimen vastaamatta. Siten setState-kutsut ovat asynkronisia ja jaettu parempaan käyttöliittymäkokemukseen ja suorituskykyyn.
Miksi setState-menetelmä on asynkroninen?
Jos haluat päivittää komponentin tilan, käytä setState-menetelmää. On kuitenkin helppo unohtaa, että setState-menetelmä on asynkroninen, mikä aiheuttaa hankalaa virheenkorjausongelmia koodissasi. SetState-funktio ei myöskään palauta lupausta Async/await- tai vastaavan käyttö ei toimi.
Voidaanko setState tehdä synkroniseksi?
Se saattaa kuulostaa oudolta, mutta yes setState voi toimia synkronisesti reactissa.
Miksi setState-tilassa on viive?
Virallinen selitys. Ajattele setState()a pyyntönä eikä välittömänä komentona komponentin päivittämiseksi. Paremman suorituskyvyn saavuttamiseksi React voi viivyttää sitä ja päivittää sitten useita komponentteja yhdellä kertaa. React ei takaa, että tilamuutokset otetaan käyttöön välittömästi.
Onko React JS synkroninen vai asynkroninen?
Ensinnäkin kyllä, se on asynkroninen.