-1
I am not knowing how to pass the file parameter home_page
to the archive produtos_module
when the user clicks.
home_page.Dart file
Observer(
builder: (_) {
List<CategoriaModel> categoria = controller.categoria.data;
return Container(
height: 160,
width: larguraTela,
margin: EdgeInsets.symmetric(
vertical: 20,
),
child: ListView.builder(
itemCount: categoria.length,
scrollDirection: Axis.horizontal,
itemBuilder: (_, index) {
var model = categoria[index];
return CategoriaWidget(
nameCategoria: model.titulo,
icon: "assets/images/icons/${model.icon}.svg",
onTap: () {
Modular.to.pushNamed(
RoutersConst.produtos,
arguments: CategoriaModel(
titulo: model.titulo,
),
);
},
);
},
),
);
},
),
archive products_module.Dart
class ProdutosModule extends ChildModule {
@override
List<Bind> get binds => [
Bind((i) => ProdutosController(i.get())),
Bind<IProdutoRepository>(
(i) => ProdutoRepository(Firestore.instance, "Beer"), // pegar a categoria quando o usuario clicar
),
];
@override
List<Router> get routers => [
Router(
RoutersConst.produtos,
child: (_, args) => ProdutosPage(),
),
];
static Inject get to => Inject<ProdutosModule>.of();
}
product file_repository.Dart
class ProdutoRepository implements IProdutoRepository {
final Firestore firestore;
final String categoria;
ProdutoRepository(this.firestore, this.categoria);
@override
Stream<List<ProdutoModel>> getProdutos() => firestore
.collection("produtos")
.snapshots()
.map((query) => query.documents
.map((doc) => ProdutoModel.fromDocument(doc))
.toList());
@override
Stream<List<ProdutoModel>> getProdutoCategoria() => firestore
.collection("produtos")
.where("categoria", isEqualTo: categoria)
.snapshots()
.map((query) => query.documents
.map((doc) => ProdutoModel.fromDocument(doc))
.toList());
}
Thanks <3, sorry for the inconvenience
– William Gravina