var value przez Remember {mutableStateOf (default)} powoduje błąd, dlaczego?

Nov 22 2020

Mam na myśli przykład w https://developer.android.com/jetpack/compose/state. Kiedy koduję

var expanded by remember { mutableStateOf(false) }

To błędy w podawaniu

Type 'TypeVariable(T)' has no method 'getValue(Nothing?, KProperty<*>)' and thus it cannot serve as a delegate

Poniższe działa jednak

val expanded = remember { mutableStateOf(false) }

// OR

val (expanded, setExpanded) = remember { mutableStateOf(false) }

Odpowiedzi

5 Elye Nov 22 2020 at 07:53

Najwyraźniej muszę uwzględnić te importy

import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue

Automatyczne importowanie nie jest automatycznie zalecane w wersji beta Android Studio 4.2

Jeśli używasz liveata, rozważ poniższy import

import androidx.compose.runtime.livedata.observeAsState