skip to Main Content

So I’m Using Getx‘s routing in Flutter.

I have a Product class that accepts an argument of the type Product

  const Produkt({
    required this.product,
  });

I handle the navigation through GetPages, like:

  GetPage(
    name: Produkt.route,
    page: () => Produkt(
      product: Get.arguments['product'],
    ),
  ),

But of course, this only works when the arguments aren’t null. How could I redirect to an error page when the arguments are null?

2

Answers


  1. you can set a simple condition inside the build() method of your Produkt widget like this:

    class Produkt extends StatelessWidget {
      const Produkt({
        super.key,
        required this.product,
      });
      final product;
      @override
      Widget build(BuildContext context) {
        if (product == null) {
          return YourErrorScreenWidget();
        }
        return WidegtOfProdukt();
      }
    }
    

    now based on product value, you can implement a YourErrorScreenWidget() if it’s null, and your specific WidegtOfProdukt() when it’s not.

    Login or Signup to reply.
  2. another solution is that you can make a check in the constructor to navigate to another screen when it’s null, otherwise it will just work fine

     class Produkt extends StatelessWidget {
      Produkt({
        super.key,
        required this.product,
      }) {
        if (product == null) {
          Get.off(YourErrorScreenWidget());
        }
      }
      final product;
      @override
      Widget build(BuildContext context) {
        return WidegtOfProdukt();
      }
    }
    

    Note: you could also call the Get.off() to navigate to another screen from the build() method, but I guess there is no point of getting inside the build() method since you’re going to navigate anyway.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search