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

1.8K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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