setState called during build

One way to avoid this error is to use the Navigator API to trigger the dialog as a route.


body: Center(
  child: ElevatedBut ton(
    child: Text ('Launch screen')
    onPressed: () {
      // Navigate to the second screen using a named route.
      Navigator.pushNamed (context, '/second');
      // Immediately show a dialog upon loading the second screen.
      Navigator.push(
        context,
        PageRouteBuilder (
          barrierDismissible : true,
          opaque: false,
          pageBuilder: (_, anim1, anim2) => MyDialog(),
        ),
      );
    }
  )
)