错误“无法在初始化程序中访问实例成员‘_uid’”

时间:2021-02-10 03:22:24

标签: firebase flutter dart mobile

错误

<块引用>

无法在初始化程序中访问实例成员“_uid”。尝试 用不同的替换对实例成员的引用 expressiondartimplicit_this_reference_in_initializer

我面临的问题:

我有两个页面(即 nav.dart 和 profile_page.dart)我想在 nav.dart 中将 _uid 初始化为 profileId(即 ProfilePage(profileId: _uid) )以便我可以使用它在 profile_page dart 的未来构建器中作为 widget.profileId。

请帮帮我:)

谢谢

这是我的导航.dart

.
.
import 'package:justpoll/screens/trending.dart';
import 'package:justpoll/screens/profile/profile_page.dart';

class Nav extends StatefulWidget {
  @override
  _NavState createState() => _NavState();
}

class _NavState extends State<Nav> {
  FirebaseAuth auth = FirebaseAuth.instance;
  final userRef = FirebaseFirestore.instance.collection("users");
  UserModel _currentUser;

  String _uid;
  String _username;
  String _email;

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

  getCurrentUser() async {
    UserModel currentUser = await context
        .read<AuthenticationService>()
        .getUserFromDB(uid: auth.currentUser.uid);

    _currentUser = currentUser;

    print("${_currentUser.username}");

    setState(() {
      _uid = _currentUser.uid;
      _username = _currentUser.username;
      _email = _currentUser.email;
    });
  }
  
  int _selectedIndex = 0;
  List<Widget> _widgetOptions = <Widget>[
    Home(),
    Trending(),
    CreatePoll(),
    ChatHomeScreen(),
    ProfilePage(profileId: _uid),
  ];

  void _onItemTap(int index) {
    if (index != 2) {
.
.

这是我的 profile_page.dart

.
.
import 'package:justpoll/screens/profile/edit_profile.dart';
import 'package:justpoll/Constants.dart';

class ProfilePage extends StatefulWidget {
  final String profileId;

  ProfilePage({this.profileId});

  @override
  _ProfilePageState createState() => _ProfilePageState();
}

class _ProfilePageState extends State<ProfilePage> {
.
.
.
buiildProfileHeader() {
    return FutureBuilder(
      future: userRef.doc(widget.profileId).get(),
      builder: (BuildContext context, snapshot) {
        if (!snapshot.hasData) {
.
.
.

0 个答案:

没有答案