gpt4 book ai didi

flutter - Flutter,在 Bloc 中使用 Bloc

转载 作者:行者123 更新时间:2023-12-03 03:23:50 27 4
gpt4 key购买 nike

我有两个BLoC。

  • EstateBloc
  • EstateTryBloc

  • 我的应用程序基本上是从API获取遗产,并以类似的 fashion显示它们

    现在,我想添加排序功能,但是我只能通过特定状态访问遗产 list 。

        if(currentState is PostLoadedState){{
    print(currentState.estates);
    }

    我想为需要该 list 的任何一个团体提供遗产 list 。

    我所做的是,创建了EstateTryBloc,它基本上包含一个州的遗产列表。

    class EstateTryBloc extends Bloc<EstateTryEvent, List<Estate>> {
    @override
    List<Estate> get initialState => [];

    @override
    Stream<List<Estate>> mapEventToState(
    EstateTryEvent event,
    ) async* {


    final currentState = state;
    if(event is AddToEstateList){
    final estates = await FetchFromEitherSource(currentState.length, 20)
    .getDataFromEitherSource();
    yield currentState + estates;
    }
    }
    }

    当我在集团内部打印状态时,我会得到遗产 list ,但我不知道如何在其他集团中使用该 list 。

    print(EstateTryBloc().state);

    简单地显示initialState。

    我愿意接受各种答案,请随时告诉我采用其他方法是否更好。

    最佳答案

    当您执行print(EstateTryBloc().state);时,您正在创建EstateTryBloc()的新实例,这就是为什么您总是看到initialState而不是当前状态的原因。

    为此,您必须访问要获取其状态的实例的引用。就像是:

    final EstateTryBloc bloc = EstateTryBloc();

    // Use the bloc wherever you want

    print(bloc.state);

    关于flutter - Flutter,在 Bloc 中使用 Bloc ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60002199/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com