I am recently creating an application in which I wrote a function to receive photos from the user, but when I click on the select photo button, I get these errors and no window opens to select photos
I even searched for these errors on the internet and came to the conclusion that I need to put a question mark (?) after DropzoneViewController, but I get the error DartError: Unexpected null value.
Please help.
error text:
DartError: LateInitializationError: Field 'dropzoneViewController' has not been initialized.
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 296:3 throw_
packages/shopping_admin/features/media/controllers/media_controller.dart 26:31 get dropzoneViewController
packages/shopping_admin/features/media/controllers/media_controller.dart 117:48 selectLocalImages
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54 runBody
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 127:5 _async
packages/shopping_admin/features/media/controllers/media_controller.dart 116:33 selectLocalImages
packages/shopping_admin/features/media/screens/media/widgets/media_uploader.dart 88:62 <fn>
packages/flutter/src/material/ink_well.dart 1170:21 handleTap
packages/flutter/src/gestures/recognizer.dart 351:24 invokeCallback
packages/flutter/src/gestures/tap.dart 656:11 handleTapUp
packages/flutter/src/gestures/tap.dart 313:5 [_checkUp]
packages/flutter/src/gestures/tap.dart 246:7 handlePrimaryPointer
packages/flutter/src/gestures/recognizer.dart 703:9 handleEvent
packages/flutter/src/gestures/pointer_router.dart 98:7 [_dispatch]
packages/flutter/src/gestures/pointer_router.dart 143:9 <fn>
dart-sdk/lib/_internal/js_dev_runtime/private/linked_hash_map.dart 21:7 forEach
packages/flutter/src/gestures/pointer_router.dart 141:17 [_dispatchEventToRoutes]
packages/flutter/src/gestures/pointer_router.dart 127:7 route
packages/flutter/src/gestures/binding.dart 501:5 handleEvent
packages/flutter/src/gestures/binding.dart 481:14 dispatchEvent
packages/flutter/src/rendering/binding.dart 450:11 dispatchEvent
packages/flutter/src/gestures/binding.dart 426:7 [_handlePointerEventImmediately]
packages/flutter/src/gestures/binding.dart 389:5 handlePointerEvent
packages/flutter/src/gestures/binding.dart 336:7 [_flushPointerEventQueue]
packages/flutter/src/gestures/binding.dart 305:9 [_handlePointerDataPacket]
lib/_engine/engine/platform_dispatcher.dart 1423:5 invoke1
lib/_engine/engine/platform_dispatcher.dart 336:5 invokeOnPointerDataPacket
lib/_engine/engine/pointer_binding.dart 405:30 [_sendToFramework]
lib/_engine/engine/pointer_binding.dart 225:7 onPointerData
lib/_engine/engine/pointer_binding.dart 1035:20 <fn>
lib/_engine/engine/pointer_binding.dart 948:7 <fn>
lib/_engine/engine/pointer_binding.dart 541:9 loggedHandler
dart-sdk/lib/_internal/js_dev_runtime/patch/js_allow_interop_patch.dart 188:27 _callDartFunctionFast1
media controller :
class MediaController extends GetxController {
static MediaController get instance => Get.find();
late DropzoneViewController dropzoneViewController;
final RxBool showImagesUploaderSection = false.obs;
final Rx<MediaCategory> selectedPath = MediaCategory.folders.obs;
final RxList<ImageModel> selectedImagesToUpload = <ImageModel>[].obs;
final MediaRepository mediaRepository = MediaRepository();
Future<void> selectLocalImages() async {
final files = await dropzoneViewController.pickFiles(
multiple: true,
mime: ['image/jpg', 'image/png'],
);
if (files.isNotEmpty) {
for (var file in files) {
if (file is html.File) {
final bytes = await dropzoneViewController.getFileData(file);
final image = ImageModel(
url: '',
file: file,
folder: '',
filename: file.name,
localImageToDisplay: Uint8List.fromList(bytes),
);
selectedImagesToUpload.add(image);
}
}
}
}
1