我使用Material作为一个可重用的组件,但是它的操作无论如何都不起作用。这就是我面临的错误
Exception caught by gesture
The following _CastError was thrown while handling a gesture:
Null check operator used on a null value
When the exception was thrown, this was the stack:
#0 ComplaintsScreen.build.<anonymous closure>.<anonymous closure> (package:elagak/Modules/drawer_screens/complaints.dart:177:62)
#1 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:1005:21)
#2 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:198:24)
#3 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:613:11)
#4 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:298:5)
#5 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:269:7)
#6 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
#7 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:449:20)
#8 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:425:22)
#9 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:329:11)
#10 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:380:7)
#11 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:344:5)
#12 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:302:7)
#13 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:285:7)
#17 _invoke1 (dart:ui/hooks.dart:170:10)
#18 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:331:7)
#19 _dispatchPointerDataPacket (dart:ui/hooks.dart:94:31)
(elided 3 frames from dart:async)
Handler: "onTap"
Recognizer: TapGestureRecognizer#cfff4
debugOwner: GestureDetector
state: ready
won arena
finalPosition: Offset(274.1, 357.3)
finalLocalPosition: Offset(264.1, 34.3)
button: 1
sent tap down这是我的密码
MyButtonClass(
title: "ارسال الطلب",
color: "#1D71B8",
pressAction: () {
cubit
.contactUS(
email: cubit.loginModel!.data.email.toString() ?? emailController.text,
name: cubit.loginModel!.data.name
.toString() ?? nameController.text,
phone: cubit.loginModel!.data.phone
.toString() ?? phoneController.text,
body: bodyController.text,
title: titleController.text,
//context: context
)
.then((value) => showDialog(
context: context,
builder: (BuildContext context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(20.0)),
child: SizedBox(
height: 200,
child: Padding(
padding: const EdgeInsets.all(10),
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
myImage(
"assets/images/splash/للوجو.png"),
const Text(
"شكرا لك يسعادنا دائما انك معانا",
style: TextStyle(
fontSize: 16,
fontWeight:
FontWeight.w600)),
],
),
),
),
);
}))
.catchError((e) => print(e.toString()));
})MyButtonClass
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
class MyButtonClass extends StatelessWidget {
MyButtonClass({
required this.pressAction,
required this.color,
required this.title,
Key? key}) : super(key: key);
void Function()? pressAction;
String color;
String title;
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: 60,
child: MaterialButton(
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.circular(15.0)),
onPressed: pressAction,
color: HexColor(color),
child: Text(title,
style: const TextStyle(fontSize: 16, color: Colors.white))),
);
}
}事实上,我在5个以上的类中使用了这个类,并且在所有的类中都在工作,但是在这里它不工作
我的接触器功能
Future contactUS(
{required String email,
required String name,
required String phone,
required String body,
required String title,
}) async {
emit(HomeRegisterLoadingState());
await http.post(Uri.parse('${api}contact-us'), body: {
'email': email,
'name': name,
'phone': phone,
'body': body,
'title': title
}, headers: {
'Accept': 'application/json'
}).then((value) {
if (jsonDecode(value.body)['code'] == 201) {
Fluttertoast.showToast(msg: jsonDecode(value.body)['msg'].toString());
emit(HomeRegisterSuccessState());
} else {
Fluttertoast.showToast(msg: "حاول مرة اخرى ");
emit(HomeRegisterErrorState());
}
}).catchError((e) {
Fluttertoast.showToast(msg: "يرجي المحاولة في وقت لاحق");
print(e.toString());
emit(HomeRegisterErrorState());
});
}有人能告诉我如何解决这个问题吗?问题是什么?
发布于 2022-08-06 12:05:51
作为您的错误Null check operator used on a null value
在您的代码中,此异常具有用于null值的条件null。
您的代码:cubit.loginModel!.data
在您的情况下,此cubit.loginModel返回null,请在执行其他操作之前使用print调试此值并修复数据或添加if (cubit.loginModel != null)。
https://stackoverflow.com/questions/73259481
复制相似问题