Problemas com a lib flutter_bloc

23/09/2021

0

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
Eduardo

Eduardo

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar