Junior — Middle
Jak jest zaimplementowana funkcjonalność adnotacji @Restartable w Jetpack Compose i jakie jest jej przeznaczenie?
sobes.tech AI
Odpowiedź od AI
Adnotacja @Restartable w Jetpack Compose służy do tworzenia efektów, które automatycznie się restartują, gdy zmieniają się kluczowe parametry. Ułatwia to zarządzanie cyklem życia efektów, takich jak korutyny czy subskrypcje, które muszą być aktualizowane przy zmianie danych wejściowych.
Cel:
- Pozwala na uruchamianie i anulowanie efektów ubocznych przy zmianie zależności.
- Zapewnia automatyczny restart efektu bez konieczności ręcznego śledzenia zmian.
Przykład użycia:
@Composable
fun MyComposable(userId: String) {
@Restartable
fun loadUserData() {
// Uruchamia się za każdym razem, gdy zmienia się userId
LaunchedEffect(userId) {
val data = repository.getUserData(userId)
// aktualizacja stanu
}
}
loadUserData()
}
W tym przykładzie, gdy userId się zmieni, efekt ładowania danych automatycznie się zrestartuje, co upraszcza kod i czyni go bardziej deklaratywnym.