Это потому, что виджет, использующий навигатор (RegisterPage
), находится на одном уровне в дереве виджетов с виджетом, который создает навигатор (MaterialApp
)
РЕШЕНИЕ : сделайте RegisterPage
ниже MaterialApp
, чтобы иметь возможность использовать context
:
class RegisterPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Register Your Account'),
centerTitle: true,
backgroundColor: Colors.green,
),
body: Builder(
builder: (ctx)=> Center(//this context here has access to Navigator
child: RaisedButton(
onPressed: () {
Navigator.of(ctx)
.push(
MaterialPageRoute(
builder: (context) => MainPage()
),
);
},
child: Text('Sign in as guest'),
)),
),
)
);
}
}