【问题标题】:Field _user has not been initialized - Flutter字段_user尚未初始化 - Flutter
【发布时间】:2021-07-01 23:11:13
【问题描述】:
import "package:flutter/material.dart";
import 'package:firebase_auth/firebase_auth.dart';
import 'package:tezuygulamasi/home_page.dart';
import 'package:tezuygulamasi/sign_in_page.dart';



class LandingPage extends StatefulWidget {
  @override
  _LState createState() => _LState();
}
class _LState extends State<LandingPage> {

  late User _user;

  @override
  void initState() {
    super.initState();
    _checkUser();
  }

  @override
  Widget build(BuildContext context) {
    if(_user == null){
      return SignInPage();
    } else {
      return HomePage(
        user: _user,
      );
    }
  }

  Future<void> _checkUser() async{
    _user = (await FirebaseAuth.instance.currentUser)!;
  }
}

由于代码是这样写的,所以给出了我在标题中提到的错误。我知道这个错误的原因是使用 “晚了”。当我删除它时,我遇到了这样的问题。**

enter image description here

另一个页面代码

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';

class HomePage extends StatelessWidget {

  final User user;
  HomePage({Key? key, required this.user}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Anasayfa"),
      ),
      body: Center(
        child: Text("Hoşgeldiniz ${user.uid}"),
      ),
    );
  }
}

“_user”或“User”参数导致问题。感谢您的帮助。

【问题讨论】:

标签: android flutter kotlin dart


【解决方案1】:

Dart 现在默认支持null safety。这里的问题是您声明了一个变量_user,它不能为空,但检查它是否为空。您可以将变量声明为 User? _user 或在 FutureBuilder 小部件中调用未来代码。

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 2021-08-03
    • 2021-11-17
    • 2021-12-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 2022-06-19
    相关资源
    最近更新 更多