Problemas com a lib flutter_bloc

23/09/2021

3

Boa tarde pessoal, estou trabalhando com uma Bloc e preciso criar um filtro de produto, criei tudo conforme esperado mas na hora de carregar ele não da o setState para tela.

codigo do bloc:

// class FiltersBloc extends Bloc<FiltersEvent, FiltersState> {
// FiltersBloc() : super(initialState);

// FiltersTeste filters = FiltersTeste();
// List<String> selects = [];
// List<String> testeList=[];
// @override
// Stream<FiltersState> mapEventToState(FiltersEvent event) async* {
// if (event is FetchFiltersEvent) {
// await loadFilters();
// yield FiltersStateLoaded(
// filterAreasOfExpertise: filters.filterAreasOfExpertise,
// filterCategorys: testeList,
// selectFilters: selects);
// } else if (event is SelectFiltersEvent) {
// checkboxFilters(event.element);
// yield FiltersStateLoaded(
// filterAreasOfExpertise: filters.filterAreasOfExpertise,
// filterCategorys: testeList,
// selectFilters: selects);
// } else if (event is SelectFiltersClear) {
// clearFilters();
// yield FiltersStateLoaded(
// filterAreasOfExpertise: filters.filterAreasOfExpertise,
// filterCategorys: testeList,
// selectFilters: selects);
// }
// print("selecionados ${filters.selectFilters}");
// }

// Future loadFilters() async {
// Map<String, dynamic> filtersApi = await Future.delayed(
// Duration(seconds: 3),
// () => {
// "categories": [
// "Texto 1",
// "texto 2",
// "Texto 3",
// "Texto 4",
// "Texto 5",
// "Texto 6",
// ],
// "AreasOfExpertise": [
// "Empreiteiras",
// "Florestal",
// "Metal e Mecânica",
// "Mineração",
// ],
// },
// );
// testeList= filtersApi['AreasOfExpertise'];
// filters = FiltersTeste(
// filterCategorys: filtersApi['categories'],
// filterAreasOfExpertise: testeList,
// selectFilters: selects);
// }

// Future checkboxFilters(String element) async {
// if (!filters.selectFilters.contains(element)) {
// selects.add(element);
// } else {
// selects.remove(element);
// }
// filters.selectFilters = selects;
// }

// clearFilters() {
// filters.selectFilters.clear();
// }
// }

// class FiltersTeste extends FiltersState {
// final List<String> filterCategorys;
// final List<String> filterAreasOfExpertise;
// List<String> selectFilters;

// List<Object> get props =>
// [filterCategorys, filterAreasOfExpertise, selectFilters];

// FiltersTeste(
// {this.selectFilters, this.filterCategorys, this.filterAreasOfExpertise});
// }


codigo dos eventos :



class FiltersEvent{

}

class FetchFiltersEvent extends FiltersEvent{

}

class SelectFiltersClear extends FiltersEvent{

}

class SelectFiltersEvent extends FiltersEvent{
final String element;

SelectFiltersEvent({this.element});
}



codigo dos states :


class FilterStateLoading extends FiltersState{

}

class FiltersStateLoaded extends FiltersState {
final List<String> filterCategorys;
final List<String> filterAreasOfExpertise;
final List<String> selectFilters;

List<Object> get props => [filterCategorys,filterAreasOfExpertise,selectFilters];


FiltersStateLoaded({ this.selectFilters, this.filterCategorys,this.filterAreasOfExpertise});

}

class FiltersStateTeste extends FiltersState {
final List<String> filterCategorys;
final List<String> filterAreasOfExpertise;
final List<String> selectFilters;

//List<Object> get props => [filterCategorys,filterAreasOfExpertise,selectFilters];


FiltersStateTeste({ this.selectFilters, this.filterCategorys,this.filterAreasOfExpertise});

}


class FilterChangingState extends FiltersState {

final List<String> selectFilters;

FilterChangingState({ this.selectFilters});
}


Codigo da view


// BlocBuilder<FiltersBloc, FiltersState>(
// bloc: _bloc,
// builder: (context, state) {
// // if (state is FiltersStateLoaded) {
// // print('print aqui');
// // return Container(
// // child: Column(
// // children: [
// // Container(
// // color: Colors.white,
// // height: constraints.maxHeight * .73,
// // child: SingleChildScrollView(
// // child: Column(children: [
// // Container(
// // child: Column(
// // children: [
// // state.selectFilters.isEmpty
// // ? Container()
// // : Container(
// // padding: EdgeInsets.only(
// // left: 16, top: 16),
// // child: Column(
// // children: [
// // Container(
// // child: Container(
// // height: 32,
// // child:
// // ListView.builder(
// // scrollDirection:
// // Axis
// // .horizontal,
// // itemCount: state
// // .selectFilters
// // .length,
// // itemBuilder:
// // (context,
// // index) {
// // return SyxTags(
// // type: SyxTypeTags
// // .filters,
// // text: state
// // .selectFilters[
// // index],
// // ontap:
// // () {},
// // );
// // }),
// // ),
// // ),
// // Padding(
// // padding:
// // EdgeInsets.only(
// // top: 8,
// // bottom: 22),
// // child: TextButton(
// // onPressed: () {
// // _bloc.a
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar