【发布时间】:2020-10-26 12:02:40
【问题描述】:
所以我尝试使用 Navigator.push(不使用 NamedRoutes)从一个屏幕导航到另一个屏幕。但突然我收到了这个未定义名称“上下文”的错误。我想从“loading_screen.dart”导航到“context_screen.dart”。我不明白为什么我会遇到这个错误。
loading_screen.dart
class LoadingScreen extends StatefulWidget {
String searchTerm;
LoadingScreen({this.searchTerm});
@override
_LoadingScreenState createState() => _LoadingScreenState();
}
class _LoadingScreenState extends State<LoadingScreen> {
@override
void initState() {
print("On Loading Screen");
String searchTerm = widget.searchTerm;
getMeaning(searchTerm);
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SpinKitWave(
color: kMainBlueColor,
size: 70.0,
),
),
);
}
}
void getMeaning(String searchTerm) async {
print(searchTerm);
// TODO: get the meaning of the search term.
// TODO: Test without net and see background loading
var searchContext;
// var searchContext = await .....
Navigator.push(context, MaterialPageRoute(builder: (context) {
return ContextScreen(searchContext: searchContext);
}));
}
context_screen.dart
class ContextScreen extends StatefulWidget {
final searchContext;
ContextScreen({this.searchContext});
@override
_ContextScreenState createState() => _ContextScreenState();
}
class _ContextScreenState extends State<ContextScreen> {
@override
Widget build(BuildContext context) {
var searchContext = widget.searchContext;
return Scaffold(
body: SafeArea(
child: Column(
children: <Widget>[
Align(
alignment: Alignment.topLeft,
child: FlatButton(
onPressed: () {
int count = 0;
Navigator.of(context).popUntil((context) => count++ >= 2);
},
child: Icon(
Icons.arrow_back_ios,
color: kMainBlueColor,
size: 50.0,
),
),
),
Center(
child: Text(
searchContext
),
)
],
),
)
);
}
}
我忽略了上面的 import 语句,但我已将它们添加到我的代码中。任何帮助,将不胜感激。提前致谢。
【问题讨论】:
-
你能显示整个错误语句吗?
-
编译器消息:lib/screens/loading_screen.dart:47:18:错误:找不到 Getter:'context'。 Navigator.push(context, MaterialPageRoute(builder: (context) { ^^^^^^^ Target kernel_snapshot failed: Exception: Errors during snapshot creation: null build failed.FAILURE: Build failed with an exception.