簡體   English   中英

Flutter 表單生成器 - FormBuilderImagePicker

[英]Flutter form builder - FormBuilderImagePicker

我讓我的用戶從圖庫或使用相機將圖像上傳到我的應用程序。 然后圖像作為字符串存儲在 SQflite 數據庫中

FormBuilderImagePicker(
  name: 'photo',
  decoration: InputDecoration(labelText: 'Upload Image'),
  maxImages: 1,
  onSaved:(val){
    try{
      selectedImg = val.first;
      imageBytes = selectedImg.readAsBytesSync(); // convert to bytes
      base64Image = base64Encode(imageBytes); // convert to string
      object.photo = base64Image;
    }catch(e){
      print(e);
    }
  }
),

這段代碼在flutter_form_builder v3上運行良好,現在遷移到v4后, val的值永遠不會更新到所選圖像,因為我收到以下錯誤:

E/flutter (24620): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The getter 'iterator' was called on null.
E/flutter (24620): Receiver: null
E/flutter (24620): Tried calling: iterator

E/flutter (24620): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
E/flutter (24620): #1      new FormBuilderImagePicker.<anonymous closure>.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:flutter_form_builder/src/fields/form_builder_image_picker.dart:187:58)
E/flutter (24620): #2      _ImageSourceBottomSheetState._onPickImage (package:flutter_form_builder/src/widgets/image_source_sheet.dart:89:33)
E/flutter (24620): <asynchronous suspension>
E/flutter (24620): #3      _ImageSourceBottomSheetState.build.<anonymous closure> (package:flutter_form_builder/src/widgets/image_source_sheet.dart:111:28)
E/flutter (24620): #4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
E/flutter (24620): #5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
E/flutter (24620): #6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
E/flutter (24620): #7      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
E/flutter (24620): #8      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
E/flutter (24620): #9      BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:259:7)
E/flutter (24620): #10     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:157:27)
E/flutter (24620): #11     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:362:20)
E/flutter (24620): #12     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)
E/flutter (24620): #13     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)
E/flutter (24620): #14     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)
E/flutter (24620): #15     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
E/flutter (24620): #16     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)
E/flutter (24620): #17     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (24620): #18     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (24620): #19     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (24620): #20     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter (24620): #21     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)

我一直在嘗試調試這個幾個小時,但沒有成功,任何幫助將不勝感激!

根據包的版本 [4.2.0](2020 年 12 月 29 日)的變更日志(見屏幕截圖),開發人員“從 package 中刪除了圖像選擇器字段 - 移至單獨的 form_builder_image_picker package ”。

包更改日志的屏幕截圖

如果您趕時間,一個快速的選擇是使用 package 的早期版本,但這不是一個很好的長期解決方案,因此您可能希望正確實施更新版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM