es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El método ‘showBottomSheet’ no se puede llamar en ‘ScaffoldState?’ porque potencialmente es nulo.

Hola, estoy obteniendo este error cuando intento ejecutar el código:

lib/layout/home_layout.dart:54:36: Error: El método ‘showBottomSheet’ no se puede llamar en ‘ScaffoldState?’ porque potencialmente es nulo.
– ‘ScaffoldState’ proviene de ‘paquete:flutter/src/material/scaffold.dart’ (‘/C:/src/flutter/packages/flutter/lib/src/material/scaffold.dart’).
Intente llamarlo usando ? en su lugar.
scaffoldKey.currentState.showBottomSheet(
^^^^^^^^^^^^^^^

Tengo una variable que he definido:

var scaffoldKey = GlobalKey<ScaffoldState>();

Aquí estoy intentando construir un BottomSheet al hacer clic en el botón de acción flotante:

floatingActionButton: FloatingActionButton(
onPressed: () {
scaffoldKey.currentState.showBottomSheet(
(context) => Container(
width: double.infinity,
height: 120.0,
color: Colors.red
),
);
},
child: const Icon(
Icons.add
),
),

¿Amablemente alguien puede decirme dónde me equivoco?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que se está llamando al método showBottomSheet en un ScaffoldState potencialmente nulo. Para resolver esto, puedes utilizar el operador ?. en lugar del operador . al llamar al método, lo que solo llamará al método si el objeto no es nulo.

    Para hacerlo, simplemente reemplaza esta línea:

    scaffoldKey.currentState.showBottomSheet(
    

    con:

    scaffoldKey.currentState?.showBottomSheet(
    

    Esto debe evitar que se produzca el error.

Comments are closed.