Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

288
Visualizações
El tipo 'State<List<User>?>' no tiene el método 'getValue(Nothing?, KProperty<*>)' y, por lo tanto, no puede servir como delegado

Estoy tratando de obtener un valor de LiveData con observeAsState en jetpack compose, pero aparece un error extraño

El tipo 'State<List?>' no tiene el método 'getValue(Nothing?, KProperty<*>)' y, por lo tanto, no puede servir como delegado

Código

 @Composable fun UserScreen(userViewModel:UserViewModel){ val items: List<User> by userViewModel.fetchUserList.observeAsState() UserList(userList = items) }

ingrese la descripción de la imagen aquí

Ver modelo

 class UserViewModel: ViewModel() { private val dataSource = UserDataSource() val fetchUserList = liveData { emit(dataSource.dummyUserList) } }
over 4 years ago · Santiago Trujillo
8 Respostas
Responde à pergunta

0

¡Tuve este problema a pesar de las importaciones! Tomó un poco, pero luego me di cuenta de dónde estaba mi problema: la variable para lo que sea que estés observando debe ser un valor , no una var :

en mi caso fue
var background: Int by currentBackgroundColor.observeAsState(0)

Debería haber sido:
val background: Int by currentBackgroundColor.observeAsState(0)

over 4 years ago · Santiago Trujillo Relatório

0

Necesitas importar

 import androidx.compose.runtime.getValue

que importará esta función que es básicamente by

 inline operator fun <T> State<T>.getValue(thisObj: Any?, property: KProperty<*>): T = value
over 4 years ago · Santiago Trujillo Relatório

0

Podrías usar: import androidx.compose.runtime.*


Las importaciones necesarias son:

 import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue import androidx.compose.runtime.mutableStateOf var value by remember { mutableStateOf("") }
over 4 years ago · Santiago Trujillo Relatório

0

Agregar una dependencia solucionó el problema para mí:

implementation "androidx.compose.runtime:runtime:$compose_version"

Gracias a Tayaab Mizhar

over 4 years ago · Santiago Trujillo Relatório

0

Para corregir el error, agregue las siguientes importaciones:

 // for a 'val' variable import androidx.compose.runtime.getValue // for a `var` variable also add import androidx.compose.runtime.setValue // or just import androidx.compose.runtime.*

Para usar una variable como un delegado de propiedad , debe proporcionar la función de operador getValue para las variables val de solo lectura y las funciones getValue y setValue para las variables var .

Para obtener más información sobre cómo se combinan los delegados de propiedad y el estado en jetpack compose, consulte Usar recordar para crear un estado interno en una sección de documentación componible . También hay una explicación en el video Thinking in Compose .

over 4 years ago · Santiago Trujillo Relatório

0

En mi caso, en una aplicación de composición, fue esta importación faltante la que provocó el error.

importar androidx.compose.getValue

over 4 years ago · Santiago Trujillo Relatório

0

Creo que el tipo de elementos debe ser anulable ya que observa LiveData:

 val items: List<User>? by userViewModel.fetchUserList.observeAsState()
over 4 years ago · Santiago Trujillo Relatório

0

Si obtiene un error del compilador que observeAsState o getValue no están definidos, asegúrese de tener las siguientes importaciones:

 import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState

Esta información proviene del paso n.º 4 del laboratorio de código " Uso del estado en Jetpack Compose ".

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda