如何解决如何删除Flutter bloc的事件以访问上一个事件
呈现一种借助Bloc搜索的场景
问题-当我搜索词组'x'时,它会显示我的数据,然后再次当我搜索'y'时,它将添加一个带有新词组的新事件,即'y'并显示数据,但是现在回头屏幕上显示“ x”作为标题搜索,但数据仍然是“ y”,因为我从未删除添加y事件。所以在这种情况下,我如何获取以前的状态,即“ x”的数据
代码段-
class SearchBloc extends Bloc<SearchEvent,SearchState> {
@override
SearchState get initialState => SearchStateNotLoaded();
SearchRepo _searchRepo = SearchRepo();
@override
Stream<SearchState> mapEventToState(SearchEvent event) async* {
if (event is SearchEventLoadData) {
yield SearchStateLoading();
try {
// this search function just calls the api - deserialise the data - add it to Model and return
var search = await this._searchRepo.search(event.phrase,event.price,event.gender);
if (search == null) {
yield SearchStateError("Error loading the search page");
} else {
yield SearchStateLoaded(search);
}
} catch (e) {}
}
}
}
搜索事件
class SearchEventLoadData extends SearchEvent {
final String phrase;
SearchEventLoadData({@required this.phrase});
}
现在,每当我搜索某项内容时,我只需使用{p> 1来添加
SearchEventLoadData(phrase : new_phrase)
BlocProvider.of<SearchBloc>(context).add(SearchEventLoadData(phrase: phrase));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。