我正在制作flutter项目,但我到处都在google上搜索。
错误信息:
参数类型“Null”不能分配给参数类型“User”。
如果用户为空,我想让应用程序进入登录页面,但我不知道为什么用户类不能为空。
这是我的代码:
class AppState {
bool loading;
User user;
AppState(this.loading, this.user);
}
...
class _HomeWidgetState extends State<HomeWidget> {
final FirebaseAuth _auth = FirebaseAuth.instance;
final GoogleSignIn _googleSignIn = GoogleSignIn();
int i = 0;
final app = AppState(true, null); // Error line
@override
Widget build(BuildContext context) {
if (app.loading)
return _loading();
if (app.user == null)
return _loginPage();
return _main();
}
...
}
搜索了有关 dart 中 User 类的官方文档并用 google 搜索了我的错误消息
您可以使用以下方式声明变量:
User user;
此语句告诉 Flutter
user
将始终具有有效的 User
对象的值。它不能为空。
然后你打电话:
AppState(true, null);
这意味着您正在尝试将
null
分配给 user
,这是不允许的(您自己的代码)。
您需要将
user
设置为空:
User? user;
或者,当您应用
User
时,您需要传递一个有效的 AppState
对象。
由于您对此似乎很陌生,我建议您查看 Flutter/Dart 文档中的 Understanding null safety 和 Sound null safety。