我正在创建一个应用程序来上传图像,并使用 file_picker 扩展来选择本地文件。我试图根据文件是否已被选择来显示两个不同的小部件。我正在使用 Obx 来实现此目的,但不知何故它不起作用。
我的代码如下所示:
import 'package:facesearch_app/controller/image_controller.dart';
import 'package:facesearch_app/widgets/after_image_upload.dart';
import 'package:facesearch_app/widgets/upload_section.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../constants/colors.dart';
class UploadScreen extends StatelessWidget {
final ImageController imageController = Get.put(ImageController());
UploadScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
toolbarHeight: 70,
centerTitle: true,
backgroundColor: CustomColors.scaffoldBg,
title: const Text(
'Upload',
style: TextStyle(
fontSize: 30, color: Colors.white, fontFamily: 'Pacifico'),
),
),
backgroundColor: CustomColors.scaffoldBg,
body: Obx(() => imageController.isPicked.value
? const AfterImageUpload()
: const UploadSection()));
}
}
对于控制器文件,
import 'package:file_picker/file_picker.dart';
import 'package:get/get.dart';
class ImageController extends GetxController {
RxBool isPicked = false.obs;
getImages() async {
FilePickerResult? result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['jpg', 'svg', 'png', 'jpeg']);
try {
if (result != null) {
isPicked.value = true;
}
} catch (e) {
print(e);
}
}
}
如果有可用的解决方案,请指导我。
你可以编辑你的答案并告诉我吗
AfterImageUpload()
因为Obx应该包装在你想要更新其状态的特定小部件中。