Преглед на файлове

image_nine_grid 增加didUpdateWidget 钩子

glglove преди 3 седмици
родител
ревизия
b125014f5a

+ 4 - 2
packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_page.dart

@@ -8,6 +8,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:plugin_platform/engine/image/image_nine_grid.dart';
 import 'package:router/ext/auto_router_extensions.dart';
 import 'package:shared/utils/color_utils.dart';
+import 'package:shared/utils/log_utils.dart';
 import 'package:widgets/my_appbar.dart';
 import 'package:widgets/my_button.dart';
 import 'package:widgets/my_text_field.dart';
@@ -18,6 +19,7 @@ import 'package:widgets/ext/ex_widget.dart';
 
 
 import '../../community/community_vm.dart';
+import 'garagesale_post_state.dart';
 import 'garagesale_post_vm.dart';
 
 @RoutePage()
@@ -48,7 +50,6 @@ class GaragesalePostPage extends HookConsumerWidget {
         );
       });
       return () => (){
-
       };
     },[]);
     return Scaffold(
@@ -250,8 +251,9 @@ class GaragesalePostPage extends HookConsumerWidget {
     );
   }
   /// 选择图片上传组件
-  Widget _buildImageSelectCmp(BuildContext context, WidgetRef ref,vm,){
+  Widget _buildImageSelectCmp(BuildContext context, WidgetRef ref,vm){
     final state = ref.watch(garagesalePostVmProvider);
+    // Log.d("打印当前的state.imgList ${state.imgList}");
     return ImageNineGrid(
       isSelectEnable: true,
       maxImages: 10,

+ 2 - 2
packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_state.dart

@@ -42,12 +42,12 @@ class GaragesalePostPageState {
 
 
   // 选择的图片
-  List<String>? imgList = [];
+  List<String>? imgList;
 
   GaragesalePostPageState({
     formData,
     required this.categoryOptionsList,
-    this.imgList,
+    this.imgList = const [],
     this.titleErrorText,
     this.contactInfoErrorText,
     this.priceErrorText,

+ 1 - 1
packages/cpt_community/lib/modules/garage/garagesale_post/garagesale_post_vm.dart

@@ -166,7 +166,7 @@ class GaragesalePostVm extends _$GaragesalePostVm {
       // 根据 categorySelectedOption
 
       List<String> imgList = _detailData.resources??[];
-      Log.d("imgList--------$imgList");
+      // Log.d("详情中获取的 imgList--------$imgList");
 
       if(contact.isNotEmpty){
         if(garagesaleDetailVm.isContactMobile(contact)){

+ 9 - 0
packages/cs_plugin_platform/lib/engine/image/image_nine_grid.dart

@@ -1,6 +1,7 @@
 import 'package:cs_resources/generated/assets.dart';
 import 'package:flutter/material.dart';
 import 'package:plugin_platform/engine/media/image_picker_utils.dart';
+import 'package:shared/utils/log_utils.dart';
 import 'package:shared/utils/util.dart';
 import 'package:widgets/ext/ex_widget.dart';
 import 'package:widgets/my_load_image.dart';
@@ -43,6 +44,14 @@ class _ImageNineGridState extends State<ImageNineGrid> {
     _images = List.from(widget.initialImages);
   }
 
+  @override
+  void didUpdateWidget(covariant ImageNineGrid oldWidget) {
+    super.didUpdateWidget(oldWidget);
+    if (oldWidget.initialImages != widget.initialImages) {
+      _images = List.from(widget.initialImages);
+    }
+  }
+
   // 选择图片
   Future<void> _pickImage() async {
     ImagePickerUtils().show(context, (filePath) {