0

我想在我的应用程序中实现颤振块。我想比较列表的长度并相应地触发 blocListener 。但是当使用listenWhen时,它提供的参数(previousState和currentState)都显示列表的当前长度。我希望这两个参数会给出不同的状态,通过这些状态我可以比较不同状态的列表长度。

BlocListener<ListBloc, ListCubitState>(
      listener: (context, state){
        print("new order");

      },
      listenWhen: (previous, current){
        if(current.items.length > previous.items.length){
          return true;
        }
        print(**current.items.length.toString()**);
        print(**previous.items.length.toString()**);
        
        return false;
        
      },

我的肘类:

    class ListBloc extends Cubit<ListCubitState>{

  ListBloc(): super(ListCubitState(items: ["items", "items"]));

  addItem() => emit(ListCubitState(items: addItemToList(state.items)));

  removeItem() => emit(ListCubitState(items: removeItemToList(state.items)));

  List<String> addItemToList(List<String> item){
    List<String> newList = item;
    newList.add("adsfasf");
    return newList;
  }

  List<String> removeItemToList(List<String> item){
    List<String> newList = item;
    newList.removeLast();
    return newList;
  }
}

任何人都可以建议代码中有什么问题(或)有没有其他方法可以实现它?

4

0 回答 0