É realmente necessário implementar o callback a partir da função onClick? Não é tão trabalhoso, mas achei bem desnecessário... É dito durante a aula que se deve fazer assim, pois seria difícil ficar passando como argumento vários valores.
Eu decidi criar um novo campo chamado "newPage" que passa a tela que deve ser chamada. Essa abordagem está correta?
Eu fiz dessa forma e deu certo, também achei mais fácil:
class _FeatureItem extends StatelessWidget {
final String name;
final IconData icon;
final Widget newPage;
... // resto do código
child: InkWell(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => newPage, // aqui eu chamo a tela que será chamada ao receber o click
));
},
... //resto do código
E para chamar ele, basta fazer assim:
_FeatureItem(
name: "Transfer",
icon: Icons.monetization_on,
newPage: ContactsList(),
),
E caso seja necessário que aceite null como valor, ficaria assim:
_FeatureItem(
name: "Transfer",
icon: Icons.monetization_on,
newPage: null,
),
class _FeatureItem extends StatelessWidget {
final String name;
final IconData icon;
final Widget? newPage;
InkWell(
onTap: () {
if (newPage != null) {
Navigator.of(context).push(MaterialPageRoute(
builder: (context) => newPage!,
));
}
},