自從 Flutter 空安全更新以來,我的舊代碼被破壞了。我設法修復了大部分問題,但這一點仍未解決。
首先是代碼:
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return StreamProvider<MyUser>.value( //initialData required here now
value: AuthService().user,
child: MaterialApp(
home: Wrapper(),
),
);
}
}
此代碼以前可以作業,但現在它要求將 initialData 作為引數傳遞給 StreamProvider。我的“MyUser”類如下:
// Create custom User Model to get only the uid
class MyUser {
final String uid;
MyUser({required this.uid});
}
我的問題只是我不確定在這種情況下我的 initialData 應該是什么。我的 AuthService 類基本上是一個具有“使用電子郵件和密碼登錄”、“使用電子郵件和密碼注冊”等功能的類,所有這些都來自 Firebase。像這樣:
// Create user object based on FirebaseUser
MyUser _userFromFirebaseUser(User? user) {
return MyUser(uid: user!.uid);
}
// Auth change user stream
Stream<MyUser> get user {
return _firebaseAuth.authStateChanges().map(_userFromFirebaseUser);
}
十分感謝你的幫助!
uj5u.com熱心網友回復:
通過添加使其可以為空?在 MyUser 之后,然后您可以將您的 initialData 設定為 null
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return StreamProvider<MyUser?>.value(
initialData: null
value: AuthService().user,
child: MaterialApp(
home: Wrapper(),
),
);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464475.html
