flutter 相当新鲜,我有一个可以成功登录 Firebase 的应用程序。但是现在我正在尝试这样做,以便如果用户已经注册,应用程序会跳过注册页面。我为这篇文章开始了一个新模板。
我使用这篇文章:如何正确检查用户是否登录以获得灵感,但我的似乎抛出错误。如果这有什么不同的话,我正在使用 VSCODE:
import 'package:buildfuture/FirstPage.dart';
import 'package:buildfuture/SecondPage.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() {
runApp(MyApp());
}
class MyApp implements StatelessWidget {
@override
Widget build() {
return FutureBuilder<FirebaseUser>(
future: FirebaseAuth.instance.currentUser(),
builder: (BuildContext context, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.hasData) {
FirebaseUser user = snapshot.data;
return First();
}
return Second();
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误:
“Object.toString”(“String Function()”)不是“Diagnosticable.toString”(“String Function({DiagnosticLevel minLevel})”)的有效覆盖。
和
“MyApp.build”(“Widget Function()”)不是“StatelessWidget.build”(“Widget Function(BuildContext)”)的有效覆盖。
以防万一我还包含了 FirstPage.dart。SecondPage.dart 完全相同,只是类名为 Second
import 'package:flutter/material.dart';
class First extends StatelessWidget {
@override
Widget build(BuildContext context){
return new Container(
child: new Center(
child: new Icon(Icons.accessibility_new, size: 150.0, color: Colors.brown)
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
错误是线class MyApp implements StatelessWidget
您应该使用extends关键字代替implements。
尝试:
class MyApp extends StatelessWidget{ // your class body ... }
Run Code Online (Sandbox Code Playgroud)
并且build方法签名必须包含BuildContext参数。
@override
Widget build(BuildContext context){ return ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8151 次 |
| 最近记录: |