![](/img/trans.png)
[英]The getter 'displayName' was called on null. - Flutter
[英]Flutter code returning “The getter 'text' was called on null.”
下面的代碼似乎沒有任何錯誤,我使用谷歌 Firebase 構建它但無法登錄。 這是登錄頁面代碼
import 'package:flutter/material.dart';
import 'utils/firebase_auth.dart';
class LoginPage extends StatefulWidget {
@override
_LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
TextEditingController _emailController;
TextEditingController _passwordController;
@override
void initstate() {
_emailController = TextEditingController(text: "");
_passwordController = TextEditingController(text: "");
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
body: Stack(
fit: StackFit.expand,
children: <Widget>[
Image(
image: AssetImage("Assets/login.jpg"),
fit: BoxFit.cover,
color: Colors.grey,
colorBlendMode: BlendMode.lighten,
),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
height: 110,
width: 110,
child: Image(
image: AssetImage("Assets/house.png"),
fit: BoxFit.fill,
colorBlendMode: BlendMode.lighten,
),
),
Form(
child: Theme(
data: ThemeData(
brightness: Brightness.light,
primarySwatch: Colors.deepPurple,
inputDecorationTheme: InputDecorationTheme(
hintStyle: TextStyle(
color: Colors.black,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.bold,
fontSize: 18.0,
),
),
),
child: Container(
padding: const EdgeInsets.all(30.0),
child: Column(
children: <Widget>[
TextFormField(
controller: _emailController,
style: TextStyle(
color: Colors.black,
fontSize: 18.5,
fontWeight: FontWeight.w400,
fontStyle: FontStyle.italic,
),
decoration: InputDecoration(
hintText: "Enter Email",
prefixIcon: Icon(Icons.email),
),
keyboardType: TextInputType.emailAddress,
),
TextFormField(
controller: _passwordController,
style: TextStyle(
color: Colors.black,
fontSize: 18.5,
fontWeight: FontWeight.w400,
fontStyle: FontStyle.italic,
),
decoration: InputDecoration(
hintText: "Enter Password",
prefixIcon: Icon(Icons.remove_red_eye),
),
keyboardType: TextInputType.text,
obscureText: true,
),
const SizedBox(height: 15.0),
MaterialButton(
minWidth: 1000.0,
color: Colors.deepPurple,
child: Text(
"LOGIN",
style: TextStyle(
fontStyle: FontStyle.italic,
fontSize: 20,
color: Colors.white),
),
onPressed: () async{
if (_emailController.text.isEmpty ||
_passwordController.text.isEmpty)
{
print("Please Enter Email and Password");
return;
}
bool res = await AuthProvider().signInWithEmail(
_emailController.text,
_passwordController.text);
if(res){
print("Login failed");
}
},
),
Row(
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 30.0),
child: Text(
"Sign Up?",
style: TextStyle(
color: Colors.deepPurple,
fontStyle: FontStyle.italic,
fontSize: 15.0,
),
),
),
Container(
padding: EdgeInsets.only(top: 30.0, left: 125.0),
child: Text(
"forgot password?",
style: TextStyle(
color: Colors.deepPurple,
fontStyle: FontStyle.italic,
fontSize: 15.0,
),
),
),
],
),
],
),
),
),
),
],
),
],
),
);
}
}
這是主要的。dart代碼包含未來
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'home.dart';
import 'loginpage.dart';
import 'splash.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primaryColor: Colors.deepPurple,
accentColor: Colors.purpleAccent,
),
home: MainScreen(),
);
}
}
class MainScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseAuth.instance.onAuthStateChanged,
builder: (context, AsyncSnapshot<FirebaseUser> snapshot){
if(snapshot.connectionState == ConnectionState.waiting)
return SplashPage();
if(!snapshot.hasData || snapshot.data == null)
return LoginPage();
return HomePage();
},
);
}
}
這是錯誤信息
E/flutter ( 1365): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'text' was called on null.
E/flutter ( 1365): Receiver: null
E/flutter ( 1365): Tried calling: text
E/flutter ( 1365): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter ( 1365): #1 _LoginPageState.build.<anonymous closure>
package:househunt/loginpage.dart:105
E/flutter ( 1365): #2 _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:706
E/flutter ( 1365): #3 _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:789
E/flutter ( 1365): #4 GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:182
E/flutter ( 1365): #5 TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:486
E/flutter ( 1365): #6 BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:264
E/flutter ( 1365): #7 BaseTapGestureRecognizer.handlePrimaryPointer
package:flutter/…/gestures/tap.dart:199
E/flutter ( 1365): #8 PrimaryPointerGestureRecognizer.handleEvent
package:flutter/…/gestures/recognizer.dart:467
E/flutter ( 1365): #9 PointerRouter._dispatch
package:flutter/…/gestures/pointer_router.dart:76
E/flutter ( 1365): #10 PointerRouter._dispatchEventToRoutes.<anonymous closure>
package:flutter/…/gestures/pointer_router.dart:117
E/flutter ( 1365): #11 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
E/flutter ( 1365): #12 PointerRouter._dispatchEventToRoutes
package:flutter/…/gestures/pointer_router.dart:115
E/flutter ( 1365): #13 PointerRouter.route
package:flutter/…/gestures/pointer_router.dart:101
E/flutter ( 1365): #14 GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:218
E/flutter ( 1365): #15 GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:198
E/flutter ( 1365): #16 GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:156
E/flutter ( 1365): #17 GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:102
E/flutter ( 1365): #18 GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:86
E/flutter ( 1365): #19 _rootRunUnary (dart:async/zone.dart:1138:13)
E/flutter ( 1365): #20 _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter ( 1365): #21 _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
E/flutter ( 1365): #22 _invoke1 (dart:ui/hooks.dart:273:10)
E/flutter ( 1365): #23 _dispatchPointerDataPacket (dart:ui/hooks.dart:182:5)
E/flutter ( 1365):
我已經在互聯網上搜索過,但找不到解決方法,請問有其他人遇到過這種問題嗎?
您在方法initstate
中有錯字。 它應該是initState
...您的初始化代碼沒有運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.