Ad

How To Make Ternary Operator On OnPressed

I'm running a similar code to the code below

showPage is a bool. results is a string.

Actions on the page itself will decide the bool status and the string.

The onPressed below is the bottom button on the page I'm at. For the user to navigate.

I would like the onPressed to pop up a different dialog depending on the status of showPage, and print the results.

Code as follows:


onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:{ShowDialogB(context:context); print(results);},

But I'm getting an error the first semi colon after ShowDialogB: 'expected to find }' Any thoughts why?

And if I remove the semi colon and do the following:


onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:ShowDialogB(context:context),

I get the error: type 'Future' is not a subtype of type '(() => void)?'

Ad

Answer

You got error because on else command you forgot to put (). Try this:

onPressed: showPage
    ? () {
        ShowDialogA(context:context); print(results);
      }
    : () {
        ShowDialogB(context:context); print(results);
      },
Ad
source: stackoverflow.com
Ad