💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ mahdi jalali jam
ارور خطای نامشخص در سبد خرید
جامعه فلاتر ایجاد شده در ۰۶ شهریور ۱۴۰۲

سلام وقت بخیر من دقیقا کدهامو مثل استاد زدم ولی تو صفحه سبد خرید خطای نامشخص رو نمایش میده دلیل ارور چی میتونه باشه.

و یه چیز دیگه ای که هم هست استاد خیلی خوب توضیح میدن و خیلی اطلاعات رو در یه قسمت میگه و همین باعث میشه اونی که میخواد یاد بگیره رها کنه.حالا خدارو شکر ما فکر رها کردنش نیستیم ولی خواستم بگم خیلی خوب میشد اگه تایم آموزشا پایین‌تر میبود.

در هر صورت ممنونم

class CartScreen extends StatefulWidget {
  const CartScreen({super.key});
  @override
  State<CartScreen> createState() => _CartScreenState();
}
class _CartScreenState extends State<CartScreen> {
  @override
  void initState() {
    super.initState();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: const Text('سبد خرید'),
      ),
      body: BlocProvider<CartBloc>(
        create: (context) {
          final bloc = CartBloc(cartRepository);
          bloc.add(CartStarted());
          return bloc;
        },
        child: BlocBuilder<CartBloc, CartState>(builder: (context, state) {
          if (state is CartLoading) {
            return const Center(
              child: CircularProgressIndicator(),
            );
          }else if (state is CartError) {
            return Center(
              child: Text(state.exception.message),
            );
          } else if (state is CartSuccess) {
            return ListView.builder(
              itemBuilder: (context, index) {
                final data = state.cartResponse.cartItems[index];
                return Container(
                  margin: const EdgeInsets.all(4),
                  decoration: BoxDecoration(
                      color: Theme.of(context).colorScheme.surface,
                      borderRadius: BorderRadius.circular(8),
                      boxShadow: [
                        BoxShadow(
                          color: Colors.black.withOpacity(0.5),
                          blurRadius: 10,
                        )
                      ]),
                  child: Column(
                    children: [
                      Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Row(
                          children: [
                            SizedBox(
                              width: 100,
                              height: 100,
                              child: ImageLoadingService(
                                imageUrl: data.product.imageUrl,
                                borderRadius: BorderRadius.circular(4),
                              ),
                            ),
                            Expanded(
                              child: Padding(
                                padding: const EdgeInsets.all(8.0),
                                child: Text(
                                  data.product.title,
                                  style: const TextStyle(fontSize: 16),
                                ),
                              ),
                            )
                          ],
                        ),
                      ),
                      Row(
                        children: [
                          Column(
                            children: [
                              const Text('تعداد'),
                              Row(
                                children: [
                                  IconButton(
                                    onPressed: () {},
                                    icon: const Icon(
                                        CupertinoIcons.plus_rectangle),
                                  ),
                                  Text(
                                    data.count.toString(),
                                    style: Theme.of(context)
                                        .textTheme
                                        .headlineMedium,
                                  ),
                                  IconButton(
                                    onPressed: () {},
                                    icon: const Icon(
                                        CupertinoIcons.minus_rectangle),
                                  ),
                                ],
                              )
                            ],
                          )
                        ],
                      ),
                      Column(
                        children: [
                          Text(
                            data.product.previousPrice.withPriceLabel,
                            style: const TextStyle(
                                decoration: TextDecoration.lineThrough),
                          ),
                          Text(data.product.price.withPriceLabel)
                        ],
                      )
                    ],
                  ),
                );
              },
              itemCount: state.cartResponse.cartItems.length,
            );
          } else {
            throw Exception('current cart state is not valid');
          }
        }),
      ), );
  }
}

سلام و درود

لطفا کد مروبط به پیاده سازی CartBloc به همراه تصویرمشکلی که مواجه میشین ارسال کنید.

امیررضا بشیری ۰۷ شهریور ۱۴۰۲، ۰۶:۱۴
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:nike_ecommerce/common/exceptions.dart';
import 'package:nike_ecommerce/data/cart_response.dart';
import 'package:nike_ecommerce/data/repo/cart_repository.dart';
part 'cart_event.dart';
part 'cart_state.dart';
class CartBloc extends Bloc<CartEvent, CartState> {
  final ICartRepository cartRepository;
  CartBloc(this.cartRepository) : super(CartLoading()) {
    on<CartEvent>((event, emit) async {
      if (event is CartStarted) {
        try {
          emit(CartLoading());
          final result = await cartRepository.getAll();
          emit(CartSuccess(result));
        } catch (e) {
          emit(CartError(AppException()));
        }
      }
    });
  }
}



part of 'cart_bloc.dart';
abstract class CartEvent extends Equatable {
  const CartEvent();
  @override
  List<Object> get props => [];
}
class CartStarted extends CartEvent {}



part of 'cart_bloc.dart';
abstract class CartState extends Equatable {
  const CartState();
  @override
  List<Object?> get props => [];
}
final class CartLoading extends CartState {}
final class CartSuccess extends CartState {
  final CartResponse cartResponse;
  const CartSuccess(this.cartResponse);
  @override
  List<Object> get props => [cartResponse];
}
final class CartError extends CartState {
  final AppException exception;
  const CartError(this.exception);
}


a37d-Screenshot_20230829_104557.png

mahdi jalali jam ۰۷ شهریور ۱۴۰۲، ۰۷:۲۸

سلام مجدد

شما چه اروری دریافت می‌کنید؟

زمانی که این مشکل به وجود میاد شما از طریق Debug Console میتونین بررسی کنید که ارور چیه و همچنین میتونین break point روی ارسال درخواست به سرور قرار بدین و ببینین اونجا چه اتفاقی میفوفته.

مواردی که گفتم رو انجام بدین اگه متوجه شدین ایراد از کجاست که هیچ در غیر این صورت تصویر اروری که دریافت می‌کنید را جهت بررسی ارسال کنید.

امیررضا بشیری ۰۷ شهریور ۱۴۰۲، ۱۲:۵۸