即使在使用反应值和依赖注入之后,GetX obx 也不起作用

问题描述 投票:0回答:1

我正在创建一个应用程序来上传图像,并使用 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);
 } 
 }
 }

如果有可用的解决方案,请指导我。

android flutter dart flutter-getx
1个回答
0
投票

你可以编辑你的答案并告诉我吗

AfterImageUpload()
因为Obx应该包装在你想要更新其状态的特定小部件中。

© www.soinside.com 2019 - 2024. All rights reserved.