方法"setState"未为类型"****"定义。尝试将名称更正为现有方法的名称,或定义名为



我以前有关于我的代码的问题,错误:找不到构造函数'ImagePickerOptions'。ImagePickerOptions()现在,我正面临一个关于代码中的setState的错误。我的目标是捕获图像,然后图像将在图像资产imgRabbitdflt1的同一页面上使用。我遵循本教程中的代码。扑动教程-图像选择器从相机&画廊| The Right Way [2022]

我得到这个错误不,

方法'setState'没有为' scansscreen '类型定义。试一试将名称更正为现有方法的名称,或定义方法名为'setState'.dartundefined_method

这是scan_screen。dart的代码

import 'dart:io';
import 'package:flutter/services.dart';
import 'controller/scan_controller.dart';
import 'package:flutter/material.dart';
import 'package:grabbitapp/core/app_export.dart';
import 'package:image_picker/image_picker.dart';
class ScanScreen extends GetWidget<ScanController> {
File? image;
Future pickimage() async {
final image = await ImagePicker().pickImage(source: ImageSource.camera);
if (image == null) return;
final imageTemporary = File(image.path);
setState (() => this.image = imageTemporary);
}

@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
backgroundColor: ColorConstant.whiteA700,
body: Container(
width: size.width,
child: SingleChildScrollView(
child: Container(
decoration:
BoxDecoration(color: ColorConstant.whiteA700),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
left: getHorizontalSize(10.00),
top: getVerticalSize(135.00),
right: getHorizontalSize(10.00)),
decoration: BoxDecoration(
color: ColorConstant.bluegray100,
borderRadius: BorderRadius.circular(
getHorizontalSize(15.00))),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(5.00),
top: getVerticalSize(50.00)),
child: image != null ? Image.file(image!) :Image.asset(
ImageConstant.imgRabbitdflt1,
height: getVerticalSize(236.00),
width:
getHorizontalSize(320.00),
fit: BoxFit.fill)),
GestureDetector(
onTap: () {
onTapImgCameraicon();
},
child: Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(
10.00),
top: getVerticalSize(43.00),
right: getHorizontalSize(
10.00),
bottom:
getVerticalSize(27.29)),
child: Image.asset(
ImageConstant.imgCameraicon,
height:
getVerticalSize(77.71),
width: getHorizontalSize(
82.93),
fit: BoxFit.fill)))
])),
Padding(
padding: EdgeInsets.only(
left: getHorizontalSize(10.00),
top: getVerticalSize(135.10),
right: getHorizontalSize(10.00),
bottom: getVerticalSize(20.00)),
child: GestureDetector(
onTap: () {
onTapBtnNext();
},
child: Container(
alignment: Alignment.center,
height: getVerticalSize(40.60),
width: getHorizontalSize(267.48),
decoration: AppDecoration
.textstylemontserratromanmedium20,
child: Text("lbl_next".tr,
textAlign: TextAlign.center,
style: AppStyle
.textstylemontserratromanmedium20
.copyWith(
fontSize: getFontSize(20),
letterSpacing: 1.20)))))
]))))));
}
onTapImgCameraicon() async {
await PermissionManager.askForPermission(Permission.camera);
await PermissionManager.askForPermission(Permission.storage);
List<String?>? imageList = [];
//TODO: Permission - use imageList for using selected images
await FileManager().showModelSheetForImage(getImages: (value) async {
imageList = value;
});
}
onTapBtnNext() {
Get.toNamed(AppRoutes.rabbitGeneratedInfoScreen);
}
}

这是我的scan_controller。dart

import '/core/app_export.dart';
import 'package:grabbitapp/presentation/scan_screen/models/scan_model.dart';

class ScanController extends GetxController {
Rx<ScanModel> scanModelObj = ScanModel().obs;

@override
void onReady() {
super.onReady();
}
@override
void onClose() {
super.onClose();
}
}

setState没有为GetWidget定义。从材料包中使用StatefulWidget:

import 'package:flutter/material.dart';
class ScanScreen extends StatefulWidget {
@override
State<ScanScreen> createState() => _ScanScreenState();
}
class _ScanScreenState extends State<ScanScreen> {
File? image;
Future pickImage() async {

// your code
setState(() {
// your code
});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
// the rest of your code
),
);
}
}

相关内容

最新更新