3

i'm getting this error while using list view.

so i have getx controller like this

class RequestMitraController extends GetxController {
  final selectedMitra = [].obs;
}

and i'm using this for selected item int view like this whit obx to observe the variable

Expanded(
                              child: ListView.builder(
                                itemBuilder: (_, i) {
                                  final selected = false.obs;
                                  return Obx(
                                    () => Padding(
                                      padding: EdgeInsets.only(bottom: 10.h),
                                      child: GestureDetector(
                                        onTap: () {
                                          selected.value = !selected.value;
                                          selected.value
                                              ? controller.selectedMitra.add(i)
                                              : controller.selectedMitra
                                                  .remove(i);
                                        },
                                        child: Container(
                                          width: 373.w,
                                          height: 96.h,
                                          decoration: BoxDecoration(
                                            borderRadius:
                                                BorderRadius.circular(20.r),
                                            color: selected.value
                                                ? Colors.green
                                                : Colors.grey[300],
                                          ),
                                          child: Padding(
                                            padding: EdgeInsets.all(9.r),
                                            child: Row(
                                              children: [
                                                Container(
                                                  width: 80.w,
                                                  height: 80.h,
                                                  decoration: BoxDecoration(
                                                    borderRadius:
                                                        BorderRadius.circular(
                                                            10.r),
                                                    image: DecorationImage(
                                                      image: NetworkImage(
                                                          "https://images.unsplash.com/photo-1518791841217-8f162f1e1131?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60"),
                                                      fit: BoxFit.cover,
                                                    ),
                                                  ),
                                                ),
                                                SizedBox(width: 20.w),
                                                Expanded(
                                                  child: Column(
                                                    crossAxisAlignment:
                                                        CrossAxisAlignment
                                                            .start,
                                                    mainAxisAlignment:
                                                        MainAxisAlignment
                                                            .center,
                                                    children: [
                                                      TextMonserratBold(
                                                        text: "John Doe",
                                                        fontSize: 14.sp,
                                                        textColour: mainBlack,
                                                      ),
                                                      SizedBox(height: 5.h),
                                                      TextMonserratNormal(
                                                        text:
                                                            "Cashier, SPG, Packaging Helper",
                                                        fontSize: 11.sp,
                                                        textColour: mainBlack,
                                                      ),
                                                      SizedBox(height: 5.h),
                                                      Row(
                                                        children: [
                                                          Icon(
                                                            CupertinoIcons
                                                                .star_fill,
                                                            color: mainBlack,
                                                            size: 14.sp,
                                                          ),
                                                          SizedBox(width: 5.w),
                                                          TextMonserratBold(
                                                            text: "4.5",
                                                            fontSize: 14.sp,
                                                            textColour:
                                                                mainBlack,
                                                          ),
                                                          Spacer(),
                                                          Icon(
                                                            CupertinoIcons
                                                                .check_mark_circled,
                                                            color: Colors.green,
                                                            size: 14.sp,
                                                          ),
                                                          SizedBox(width: 5.w),
                                                          TextMonserratNormal(
                                                            text: "Available",
                                                            fontSize: 14.sp,
                                                            textColour:
                                                                mainBlack,
                                                          ),
                                                        ],
                                                      ),
                                                    ],
                                                  ),
                                                ),
                                                SizedBox(width: 20.w),
                                              ],
                                            ),
                                          ),
                                        ),
                                      ),
                                    ),
                                  );
                                },
                                itemCount: 20,
                              ),
                            ),

everything was working fine. but when i use get.toNamed to go to next page

 Get.toNamed(
                      Routes.ORDER_SUMMARY,
                      arguments: controller.selectedMitra,
                    );

and go back to this page i get this error.

is there any suggestion for my problem since i have no idea how to deal with this :).

`======== Exception caught by widgets library ======================================================= The following _CastError was thrown building Obx(has builder, dirty, state: _ObxState#7e686): Null check operator used on a null value

The relevant error-causing widget was: Obx Obx:file:///Volumes/DATA/GEBU/client/lib/app/modules/request_mitra/views/request_mitra_view.dart:103:42 When the exception was thrown, this was the stack: #0 Element.widget (package:flutter/src/widgets/framework.dart:3203:31) #1 RenderObjectElement.widget (package:flutter/src/widgets/framework.dart:5545:42) #2 _LayoutBuilderElement.widget (package:flutter/src/widgets/layout_builder.dart:61:64) #3 debugCheckHasMediaQuery.<anonymous closure> (package:flutter/src/widgets/debug.dart:229:17) #4 debugCheckHasMediaQuery (package:flutter/src/widgets/debug.dart:245:4) #5 MediaQuery.of (package:flutter/src/widgets/media_query.dart:859:12) #6 ScreenUtil.screenHeight (package:flutter_screenutil/screen_util.dart:74:36) #7 ScreenUtil.scaleHeight (package:flutter_screenutil/screen_util.dart:92:52) #8 ScreenUtil.setHeight (package:flutter_screenutil/screen_util.dart:113:44) #9 SizeExtension.h (package:flutter_screenutil/size_extension.dart:8:32) #10 RequestMitraView.build.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:gebu_client/app/modules/request_mitra/views/request_mitra_view.dart:105:75) #11 Obx.build (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:70:28) #12 RxInterface.notifyChildren (package:get/get_rx/src/rx_types/rx_core/rx_interface.dart:26:27) #13 _ObxState.build (package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart:54:19) #14 StatefulElement.build (package:flutter/src/widgets/framework.dart:4870:27) #15 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4754:15) #16 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4928:11) #17 Element.rebuild (package:flutter/src/widgets/framework.dart:4477:5) #18 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4735:5) #19 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4919:11) #20 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4729:5) ... Normal element mounting (33 frames) #53 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3790:14) #54 Element.updateChild (package:flutter/src/widgets/framework.dart:3540:18) #55 SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1243:37) #56 SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:1228:20) #57 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2600:19) #58 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1221:12) #59 RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:349:23) #60 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:1997:59) #61 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15) #62 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1997:14) #63 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:338:5) #64 RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:484:5) #65 RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:239:19) #66 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:281:12) #67 RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7) #68 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:12) #69 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11) #70 RenderObject.layout (package:flutter/src/rendering/object.dart:1887:7) #71 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13) #72 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1580:12) #73 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20) #74 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1731:7) #75 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18) #76 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:497:19) #77 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13) #78 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5) #79 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15) #80 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9) #81 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5) #85 _invoke (dart:ui/hooks.dart:151:10) #86 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5) #87 _drawFrame (dart:ui/hooks.dart:115:31)`

i have no idea how to get this problem done.

0 Answers0