Skip to content

Rotas dinâmicas

Alvaro Vasconcelos edited this page Mar 3, 2020 · 1 revision

Rotas dinâmicas

Você pode usar o sistema de rotas dinâmicas para passar um valor por parâmetro e o receber em sua view.

//use (:nome_do_parametro) para usar rotas dinâmicas;
//use o objeto args que é um (ModularArguments) para receber o valor
 @override
  List<Router> get routers => [
      Router("/product/:id", child: (_, args) => Product(id: args.params['id'])),
  ];

Uma rota dinâmica é considerada válida quando o valor correspontente ao parâmentro é preenchido. A partir disto você pode usar:

 
Navigator.pushNamed(context, '/product/1'); //args.params['id']) será 1
//or
Modular.to.pushNamed('/product/1'); //args.params['id']) será 1

Você também pode passar um objeto usando a propriedade "arguments" na navegação:

 
Navigator.pushNamed(context, '/product', arguments: ProductModel()); //args.data
//or
Modular.to.pushNamed('/product', arguments: ProductModel()); //args.data

recebendo na rota

 @override
  List<Router> get routers => [
      Router("/product", child: (_, args) => Product(model: args.data)),
  ];

Clone this wiki locally