Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.8K
Vistas
Las invocaciones @composable solo pueden ocurrir desde el contexto de una función @composable

Estoy tratando de mostrar un mensaje de brindis cuando hago clic en una acción de la barra de herramientas, pero recibo este error

Las invocaciones @composable solo pueden ocurrir desde el contexto de una función @composable

Código:

 @Composable fun Toolbar() { TopAppBar(title = { Text(text = "Jetpack Compose") }, navigationIcon = { IconButton(onClick = {}) { Icon(Icons.Filled.Menu) } }, actions = { IconButton(onClick = { showMessage(message = "test") }) { Icon(vectorResource(id = R.drawable.ic_baseline_save_24)) } }) } @Preview @Composable fun ToolbarPreview(){ Toolbar() } @Composable fun showMessage(message:String){ Toast.makeText(ContextAmbient.current, message, Toast.LENGTH_SHORT).show() }
over 4 years ago · Hanz Gallego
3 Respuestas
Responde la pregunta

0

El parámetro onClick no acepta una función componible. Elimina la anotación @Composable en showMessage .
Usa algo como:

 @Composable fun Toolbar() { val context = LocalContext.current TopAppBar(title = {}, actions = { IconButton(onClick = { showMessage(context, message = "test") }){} }) } fun showMessage(context: Context, message:String){ Toast.makeText(context, message, Toast.LENGTH_SHORT).show() }
over 4 years ago · Hanz Gallego Denunciar

0

¿Quieres decir algo como esto?

 @Composable fun MyTopAppBar( title: String, actionItem: TopBarActionItem, navigationClick: (@Composable () -> Unit)? = null) {}

¿Y cómo invocas a navigationClick? El método de invoke() en sí mismo no se puede componer y obtuvo el error nuevamente.

¿No puedes usar navigationClick?.invoke()

over 4 years ago · Hanz Gallego Denunciar

0

Obtuve el mismo error y mi solución fue agregar una anotación @Composable al parámetro en mi método donde paso otra función componible.

Ejemplo:

 navigationIcon: @Composable () -> Unit
over 4 years ago · Hanz Gallego Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda