Flutter 试图从类中调用值

Flutter 试图从类中调用值,flutter,dart,Flutter,Dart,大家好 我正试图从flift项目中另一个文件中的类调用avatar值,如下所示 首先,我有一个dart文件,它使用firestore进行身份验证,然后数据保存在clas中,如下所示 ''' ''' 名为UserData的类 ''' ''' 从身份验证文件中,我可以打印类UserData的所有值,如(名称、化身、电子邮件…) 但是当我试图从我的导航文件调用它时,它会给我以下错误 The getter 'avatar' was called on null. 导航文件如下所示 ''' class

大家好 我正试图从flift项目中另一个文件中的类调用avatar值,如下所示 首先,我有一个dart文件,它使用firestore进行身份验证,然后数据保存在clas中,如下所示 '''

'''

名为UserData的类 '''

''' 从身份验证文件中,我可以打印类UserData的所有值,如(名称、化身、电子邮件…) 但是当我试图从我的导航文件调用它时,它会给我以下错误

The getter 'avatar' was called on null.
导航文件如下所示 '''

class NavigationBarWidget扩展了StatefulWidget{
静态常量字符串id='navigation_widget';
@凌驾
_NavigationBarWidgetState createState()=>_NavigationBarWidgetState();
}
类_NavigationBarWidgetState扩展状态{
int _screensIndex=0;
int指数=2;
GlobalKey _bottomNavigationKey=GlobalKey();
最终列表_屏幕=[
首页(),
PlannerPage(),
AddPostsPage(当前用户:当前用户,),
ActivityPage(),
UserProfile()
];
页面控制器(索引){
设置状态(){
//打印(当前用户);
_屏幕索引=索引;
});
}
@凌驾
void initState(){
//TODO:实现initState
页面控制器(索引);
super.initState();
}
@凌驾
无效处置(){
pageController(索引)?.dispose();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
//打印(currentUser.email);
返回脚手架(
正文:_屏幕[_屏幕索引],
底部导航栏:曲线导航栏(
索引:2,
animationDuration:持续时间(毫秒:300),
动画曲线:Curves.easeIn,
身高:75.0,
键:_bottomNavigationKey,
背景颜色:Colors.blueAccent,
项目:[
图标(CupertinoIcons.home,尺寸:30),
图标(CupertinoIcons.location,尺寸:30),
图标(CupertinoIcons.add_圆圈,尺寸:35),
图标(CupertinoIcons.heart,尺寸:30),
图标(CupertinoIcons.person,尺寸:30),
],
onTap:pageController,
),
);
}
}
'''


提前感谢

我在您提供的代码中没有看到“avatar”或“UserData”类名是UserData,其中一个变量是avatarI意味着我在导航文件中没有看到它我使用currentuser''import'包调用该类:trip_planner/providers/auth_provider.dart''currentuser在此文件auth_provider.dart中定义。有人有答案吗?
import 'package:cloud_firestore/cloud_firestore.dart';

class UserData {
  final String uid;
  final String name;
  final String age;
  final String avatar;
  final String email;
  final String nickname;
  UserData(
      {this.uid, this.name, this.age, this.email, this.nickname, this.avatar});

  factory UserData.fromDocument(DocumentSnapshot doc) {
    return UserData(
      uid: doc['id'],
      name: doc['name'],
      age: doc['age'],
      avatar: doc['avatar'],
      email: doc['email'],
      nickname: doc['nickname'],
    );
  }
}
The getter 'avatar' was called on null.
class NavigationBarWidget extends StatefulWidget {
  static const String id = 'navigation_widget';
  @override
  _NavigationBarWidgetState createState() => _NavigationBarWidgetState();
}

class _NavigationBarWidgetState extends State<NavigationBarWidget> {
  int _screensIndex = 0;
  int index = 2;
  GlobalKey _bottomNavigationKey = GlobalKey();
  final List<Widget> _screens = [
    HomePage(),
    PlannerPage(),
    AddPostsPage(currentUser: currentUser,),
    ActivityPage(),
    UserProfile()
  ];

  pageController(index) {
    setState(() {
      //print(currentUser);
      _screensIndex = index;
    });
  }

  @override
  void initState() {
    // TODO: implement initState
    pageController(index);
    super.initState();
  }

  @override
  void dispose() {
    pageController(index)?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    //print(currentUser.email);
    return Scaffold(
      body: _screens[_screensIndex],
      bottomNavigationBar: CurvedNavigationBar(
        index: 2,
        animationDuration: Duration(milliseconds: 300),
        animationCurve: Curves.easeIn,
        height: 75.0,
        key: _bottomNavigationKey,
        backgroundColor: Colors.blueAccent,
        items: <Widget>[
          Icon(CupertinoIcons.home, size: 30),
          Icon(CupertinoIcons.location, size: 30),
          Icon(CupertinoIcons.add_circled, size: 35),
          Icon(CupertinoIcons.heart, size: 30),
          Icon(CupertinoIcons.person, size: 30),
        ],
        onTap: pageController,
      ),
    );
  }
}