Como Alterar um Page State a Partir de um Componente Filho no FlutterFlow?

Troubleshooting

Estou desenvolvendo um app no FlutterFlow e tenho a seguinte estrutura de telas:

  • Layout - Este é o componente principal do meu APP, criei ele pensando em padronizar e facilitar o desenvolvimento do aplicativo, no mesmo tenho meus layouts fixos, ou seja, que sempre irão se repetir em qualquer tela do sistema, Header e NavBar. Abaixo do Header, adicionei um WidgetBuilder, que será o responsável por exibir as paginas da aplicação, como por exemplo: PurchaseRequestPage, DashboardPage e HomePage

  • PurchaseRequestPage (Página principal) → Possui um Page State (isCreatePurchase, do tipo booleano). Dentro desta página eu chamo o componente "Layout" e como o mesmo possui um WidgetBuilder, será no parâmetro dele que irei chamar os componentes abaixo.

  • layout_children_create_purchase (Componente filho) → Exibe a tela de criação de solicitação de compra.

  • layout_children_list_purchase (Componente filho) → Exibe a listagem de solicitações de compra.

Funcionamento esperado:

  • Se isCreatePurchase == true, exibir layout_children_create_purchase.

  • Se isCreatePurchase == false, exibir layout_children_list_purchase.

  • Dentro de layout_children_create_purchase, há um botão de voltar que deve alterar isCreatePurchase para false, para que a tela de listagem seja exibida novamente.

Problema:

O layout_children_create_purchase é um componente isolado, então ele não tem acesso direto ao Page State. O FlutterFlow permite modificar apenas App State e Component State dentro de componentes filhos, mas eu preciso modificar um Page State que pertence ao PurchaseRequestPage.

Este problema seria facilmente resolvido se eu optasse por utilizar um App State, mas acredito que não seria correto, pois isCreatePurchase está diretamente ligado ao comportamento desta página apenas, e não de todo meu aplicativo.

What have you tried so far?

Callback, mas não obtive sucesso

Did you check FlutterFlow's Documentation for this topic?
Yes
1
1 reply