【问题标题】:Cart system in flutter bloc颤振块中的推车系统
【发布时间】:2021-04-05 15:10:36
【问题描述】:

我正在用颤振块构建一个购物车系统。我有一个产品列表,现在我正在向列表中添加新产品。它工作正常。但我想增加一个项目的计数,如果它存在于列表中。

  Stream<CartState> _mapCartItemAddedToState(
    CartItemAdded event,
    CartState state,
  ) async* {
    if (state is CartLoaded) {
      try {
        yield CartLoaded(
          cart: Cart(items: List.from(state.cart.items)..add(event.item)),
        );
      } on Exception {
        yield CartError();
      }
    }
  }

  Stream<CartState> _mapCartItemIncrementedToState(
      CartItemIncremented event, CartState state) async* {
    if (state is CartLoaded) {
      List<Item> items = List.from(state.cart.items);
      var index = items.indexWhere((item) => item.id == event.id);
      items[index].count++;

      try {
        yield CartLoaded(cart: Cart(items: items));
      } on Exception {
        yield CartError();
      }
    }
  }

这是我正在使用的两种状态。首先是直接添加产品,而第二个是在更新列表内的项目后重新分配列表。我遇到的问题是我的计数状态没有更新。我用过平等的。包括所有依赖项。这种方法正确还是我应该采用另一种方法?我无法意识到如何做到这一点。我的页面只有在刷新后才会更新。

【问题讨论】:

    标签: flutter dart shopping-cart bloc flutter-bloc


    【解决方案1】:

    前段时间,我构建了使用 BLoC 进行状态管理的购物应用原型。这个项目解决了完全相同的问题。您可以在此处找到 Cart BLoC 的示例(连同项目存储库):https://github.com/mkobuolys/shopping-app-prototype/blob/main/lib/modules/cart/bloc/cart_bloc.dart

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 2021-06-17
      • 1970-01-01
      • 2022-10-05
      • 2019-07-23
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多