Flutter 在Flatter getx中对空值使用空检查运算符
虽然我在代码中找不到任何空值,但我的代码给出了用于空值的Flutter 在Flatter getx中对空值使用空检查运算符,flutter,get,nullpointerexception,nul,flutter-getx,Flutter,Get,Nullpointerexception,Nul,Flutter Getx,虽然我在代码中找不到任何空值,但我的代码给出了用于空值的空检查运算符 我不知道是哪个屏幕导致了错误,但肯定是这两个屏幕中只有哪个是错误的 闪屏 导入'dart:async'; 进口“包装:颤振/材料.省道”; 导入“package:get/get.dart”; 导入“package:tajicEasy/ui/auth/landingPage.dart”; 导入“mySharedPreferences.dart”; 导入“onBoarding_page.dart”; 类SplashScreen扩展
空检查运算符
我不知道是哪个屏幕导致了错误,但肯定是这两个屏幕中只有哪个是错误的
闪屏
导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“package:get/get.dart”;
导入“package:tajicEasy/ui/auth/landingPage.dart”;
导入“mySharedPreferences.dart”;
导入“onBoarding_page.dart”;
类SplashScreen扩展StatefulWidget{
@凌驾
_SplashScreenState createState()=>\u SplashScreenState();
}
类的状态扩展了状态{
@凌驾
void initState(){
super.initState();
加载屏幕();
myAppState();
}
bool isFirstTimeOpen=false;
myAppState(){
MySharedPreferences.instance
.getBooleanValue(“首次打开”)
.然后((值)=>设置状态(){
isFirstTimeOpen=值;
}));
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
背景颜色:Colors.white,
正文:中(
子:Image.asset(
“assets/images/logo.png”,
宽度:double.infinity,
),
),
);
}
Future loadSplashScreen()异步{
返回计时器(持续时间(秒数:3),onDoneLoadind);
}
onDoneLoadind()异步{
Get.offAll(()=>isFirstTimeOpen?LandingPage():OnBoardingPage());
}
}
加载屏幕
import'包装:flift/cupertino.dart';
导入“package:get/get.dart”;
导入“package:tajicEasy/controller/authController.dart”;
导入“package:tajicEasy/controller/userController.dart”;
导入“package:tajicEasy/ui/auth/login_in.dart”;
导入“package:tajicEasy/ui/widgets/bottomNavigationBar.dart”;
类LandingPage扩展了GetWidget{
@凌驾
小部件构建(构建上下文){
返回GetX(initState:maininit(),
建筑商:(){
印刷品(“此处1”);
if(Get.find().user!=null){
印刷品(“此处1”);
返回登录名();
}否则{
印刷品(“此处1”);
返回AppMain();
}
});
}
maininit(){
打印(“此处”);
Get.put(UserController());
打印(“此处”);
Get.put(AuthController());
打印(“此处”);
}
}
我已尝试放置loadSplashScreen()代码>在设置状态之后,在myAppState()
但在那之后,我得到了同样的错误
检查isFirstTimeOpen
是否不为null尝试在启动屏幕上使用GetWidget或使用globalkey或两者兼用这是因为我们使用了bang
操作符,即空值上的代码>。但这里似乎没有这样的代码。检查其他widgetCheck此(bang
)运算符未在任何widgetCheck中使用如果这有助于不工作,则会引发相同的错误
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tajicEasy/ui/auth/landingPage.dart';
import 'mySharedPreferences.dart';
import 'onBoarding_page.dart';
class SplashScreen extends StatefulWidget {
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
super.initState();
loadSplashScreen();
myAppState();
}
bool isFirstTimeOpen = false;
myAppState() {
MySharedPreferences.instance
.getBooleanValue("firstTimeOpen")
.then((value) => setState(() {
isFirstTimeOpen = value;
}));
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: Center(
child: Image.asset(
"assets/images/logo.png",
width: double.infinity,
),
),
);
}
Future<Timer> loadSplashScreen() async {
return Timer(Duration(seconds: 3), onDoneLoadind);
}
onDoneLoadind() async {
Get.offAll(() => isFirstTimeOpen ? LandingPage() : OnBoardingPage());
}
}
import 'package:flutter/cupertino.dart';
import 'package:get/get.dart';
import 'package:tajicEasy/controller/authController.dart';
import 'package:tajicEasy/controller/userController.dart';
import 'package:tajicEasy/ui/auth/login_in.dart';
import 'package:tajicEasy/ui/widgets/bottomNavigationBar.dart';
class LandingPage extends GetWidget<AuthController> {
@override
Widget build(BuildContext context){
return GetX(initState: maininit(),
builder: (_) {
print("here1");
if (Get.find<AuthController>().user!=null) {
print("here1");
return Login();
} else {
print("here1");
return AppMain();
}
});
}
maininit() {
print("here");
Get.put<UserController>(UserController());
print("here");
Get.put<AuthController>(AuthController());
print("here");
}
}