La función de compilación de Flutter devuelve nulo

Sep 25 2020

Estoy intentando navegar a mi página de inicio o página de inicio de sesión sobre la base de authStatus. Mientras usa Navigator.of (contexto) ... devuelve nulo en el método de compilación por un segundo y luego la pantalla se actualiza y navega a la página dada con éxito. Soy relativamente nuevo en el desarrollo móvil y en Flutter. ¡Cualquier pista ayudará! Gracias.

Aquí está el código:

  @override
  Widget build(BuildContext context) {
    switch (authStatus) {
      case AuthStatus.NOT_LOGGED_IN:
        WidgetsBinding.instance.addPostFrameCallback((_) {
          {
            Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (context) => LoginSignUpPage(
                        auth: widget.auth,
                        onSignedIn: _onLoggedIn,
                        params: widget.params,
                      )),
            );
          }
        });

        break;
      case AuthStatus.LOGGED_IN:
        if (_userId.length > 0 && _userId != null) {
          WidgetsBinding.instance.addPostFrameCallback((_) {
            Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (context) => HomePage(
                        userId: _userId,
                        auth: widget.auth,
                        onSignedOut: _onSignedOut,
                        params: widget.params,
                      )),
            );
          });
        } else
          return widget.waitingScreen;
        break;
      default:
        return widget.waitingScreen;
    }

Aquí está el error:

Una función de construcción devolvió nulo. El widget infractor es: Las funciones de generación de RootPage nunca deben devolver un valor nulo. Para devolver un espacio vacío que hace que el widget de construcción llene el espacio disponible, devuelve "Container ()". Para devolver un espacio vacío que ocupe el menor espacio posible, devuelva "Contenedor (ancho: 0.0, alto: 0.0)".

Respuestas

2 JonnyH Sep 25 2020 at 03:01

en la línea de código que sigue a WidgetsBinding, agregue

return Container();

También puede incluir un parámetro de color para que coincida con su diseño.