当我打印调试时,它在 Flutter 中显示 type-->Instance of 'Future<dynamic>'
when I print for debug it shows type-->Instance of 'Future<dynamic>' in Flutter
简单地说,我的任务是将共享数据提供给变量“type”,请帮帮我
*这个示例代码是 main.dart 并且我使用共享首选项进行数据传输并且类型的键是“typeOfUser”,我看到了很多博客甚至 Whosebug,问题但是 none它们适合我 *
代码如下:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:nativestore/database/datatrans.dart';
import 'package:nativestore/homepage.dart';
import 'package:nativestore/loginout/loginpage.dart';
import 'package:nativestore/shophomepage.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'loginout/auth.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: routePage(),
);
}
}
class routePage extends StatefulWidget {
@override
routePageState createState() => routePageState();
}
class routePageState extends State<routePage> {
final AuthService _auth = AuthService();
int type;
bool isLoggedin = false;
getIntValuesSF() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int val = prefs.getInt('typeOfUser');
return val;
}
@override
void initState() {
super.initState();
print("type-->${getIntValuesSF()}");
print("Init state");
_auth.autoLogin().then((value) {
if (value == 'null') {
print(isLoggedin);
setState(() {
isLoggedin = false;
});
} else if (value != null) {
setState(() {
isLoggedin = true;
});
} else {
setState(() {
isLoggedin = false;
});
}
});
}
// var Utype = GetUserType(type:"ko")
@override
Widget build(BuildContext context) {
return isLoggedin == true
? (type == 2)
? homePage()
: ShopHomePage()
: loginPage();
}
}
输出:
Performing hot restart...
Syncing files to device Redmi Note 8...
Restarted application in 2,645ms.
I/flutter (14262): type-->Instance of 'Future<dynamic>'
I/flutter (14262): Init state
所以请帮助我。
提前致谢...
更改它:
print("type-->${getIntValuesSF()}");
至:
var value = await getIntValuesSF();
print("type-->${value.toString()}");
您的代码打印 Instance of 'Future<dynamic>'
的原因是因为正在打印 getIntValuesSF()
的实例而不是 return 的值。您在这里可以做的是 运行 异步函数并使用 then
在 future 完成时获取其 return 值。
void initState() {
super.initState();
getIntValuesSF().then((value) {
debugPrint('type-->$value');
// do functions requiring value parameter
});
}
简单地说,我的任务是将共享数据提供给变量“type”,请帮帮我
*这个示例代码是 main.dart 并且我使用共享首选项进行数据传输并且类型的键是“typeOfUser”,我看到了很多博客甚至 Whosebug,问题但是 none它们适合我 *
代码如下:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:nativestore/database/datatrans.dart';
import 'package:nativestore/homepage.dart';
import 'package:nativestore/loginout/loginpage.dart';
import 'package:nativestore/shophomepage.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'loginout/auth.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: routePage(),
);
}
}
class routePage extends StatefulWidget {
@override
routePageState createState() => routePageState();
}
class routePageState extends State<routePage> {
final AuthService _auth = AuthService();
int type;
bool isLoggedin = false;
getIntValuesSF() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
int val = prefs.getInt('typeOfUser');
return val;
}
@override
void initState() {
super.initState();
print("type-->${getIntValuesSF()}");
print("Init state");
_auth.autoLogin().then((value) {
if (value == 'null') {
print(isLoggedin);
setState(() {
isLoggedin = false;
});
} else if (value != null) {
setState(() {
isLoggedin = true;
});
} else {
setState(() {
isLoggedin = false;
});
}
});
}
// var Utype = GetUserType(type:"ko")
@override
Widget build(BuildContext context) {
return isLoggedin == true
? (type == 2)
? homePage()
: ShopHomePage()
: loginPage();
}
}
输出:
Performing hot restart...
Syncing files to device Redmi Note 8...
Restarted application in 2,645ms.
I/flutter (14262): type-->Instance of 'Future<dynamic>'
I/flutter (14262): Init state
所以请帮助我。 提前致谢...
更改它:
print("type-->${getIntValuesSF()}");
至:
var value = await getIntValuesSF();
print("type-->${value.toString()}");
您的代码打印 Instance of 'Future<dynamic>'
的原因是因为正在打印 getIntValuesSF()
的实例而不是 return 的值。您在这里可以做的是 运行 异步函数并使用 then
在 future 完成时获取其 return 值。
void initState() {
super.initState();
getIntValuesSF().then((value) {
debugPrint('type-->$value');
// do functions requiring value parameter
});
}