Flutter: BLoC e contesti di navigazione

Oggi ti mostrerò come passare BLoC alla schermata successiva tramite il navigatore se non forniamo il MultiBlocProvider come fornitore globale di tutti i BLoC.

L'esempio completo che puoi osservare nel repository git .
Comincerei dal caso di navigazione:

In questo caso, abbiamo due diversi oggetti BuildContext, il primo è un oggetto contesto relativo alla funzione “build” del tuo Widget, e il secondo “routeContext” relativo al builder “MaterialPageRoute”.

BLoC globale

Quando MultiBlocProvider esegue il wrapping dell'intera applicazione, non importa quale contesto utilizzare perché tutti i BLoC verranno passati attraverso ogni contesto.

Ma pensaci, tutti i widget avranno accesso a ciascun BLoC. Va bene se sono i dati di autorizzazione o alcune informazioni del profilo che devono essere accessibili per un gruppo di widget. Ma se si tratta di dati che devono essere richiesti dall'API e solo dopo che l'autorizzazione ha avuto esito positivo, sarà necessario scrivere molto codice relativo all'inizializzazione lenta di ciascun BLoC e gestire eventi, stati, ecc.

BLoC locale

Possiamo localizzare BLoC per ogni parte dell'applicazione, sai già come farlo:

In questo caso, avrai questo BLoC solo in questo ambito, ad esempio è una pagina utilizzata per la visualizzazione del catalogo dei prodotti. Ma tutto il codice fuori dal BlocBuilder all'interno del figlio di questo BlocProvider non avrà accesso al contesto del blocco che ti costringe a passare il contesto del blocco a ciascuna funzione che ne aveva bisogno come nell'esempio:

Soluzione alternativa con BLoC locale

Per evitare la mancanza dei dati dell'oggetto di contesto, è sufficiente creare un wrapper senza stato e utilizzare il widget di destinazione come figlio per avere accesso al blocco dal contesto di compilazione del widget:

Quindi sarà più semplice costruire parte di una pagina, passare un blocco attraverso la navigazione, ecc.

E usa lo stesso wrapper sull'altro lato dove devi costruire un widget di pagina basato sul BLoC della pagina precedente, ad esempio Home> ItemDetails:

Di conseguenza, abbiamo la soluzione per il blocco che passa attraverso la navigazione e semplifica il lavoro con BLoC nei widget.

Come al solito, tutti i sorgenti sono aperti e disponibili sul mio repository GitHub , quindi buona fortuna!

Per favore aiutami se vuoi migliorare questo articolo, quindi non esitare: scrivi i tuoi commenti!

Suggested posts

Padroneggiare lo sviluppo mobile: come scegliere il miglior linguaggio di programmazione per la tua app

Padroneggiare lo sviluppo mobile: come scegliere il miglior linguaggio di programmazione per la tua app

Lo sviluppo mobile è diventato una componente vitale per il successo delle aziende nel mondo digitale di oggi. In qualità di sviluppatore di app per dispositivi mobili, è essenziale scegliere il linguaggio di programmazione giusto per creare la tua app.

Metodi di estensione flutter: una guida con esempi

Metodi di estensione flutter: una guida con esempi

Se stai cercando di creare app che possano funzionare su più piattaforme, Flutter è un ottimo framework da considerare. Utilizza il linguaggio di programmazione Dart e ha una funzionalità chiamata "metodi di estensione" che lo rende davvero flessibile.

Related posts

"La fossa delle Marianne svelata: svelare le terrificanti verità nascoste dell'abisso"

"La fossa delle Marianne svelata: svelare le terrificanti verità nascoste dell'abisso"

Introduzione:Benvenuti, coraggiosi lettori, in un viaggio che ci porterà nelle profondità più oscure del nostro pianeta. In questo blog, ci addentriamo nel mondo enigmatico della Fossa delle Marianne, scoprendo i suoi segreti nascosti e scoprendo le verità agghiaccianti che giacciono sotto la sua superficie.

Conversazioni pericolose

Conversazioni pericolose

Se vogliamo continuare a prosperare su questo pianeta, dovremo avere conversazioni pericolose. Quelli che mettono in discussione ciò che abbiamo fatto, ciò che stiamo facendo e ciò che attualmente intendiamo continuare a fare (o stiamo pianificando di fare).

Niente più password: come le passkey sostituiranno la tua password

Niente più password: come le passkey sostituiranno la tua password

Per evitare ambiguità verranno utilizzati i seguenti termini; Autenticatore; Il telefono cellulare utilizzato per effettuare il login Sito web; Il sito Web o l'applicazione che l'utente sta utilizzando per effettuare la richiesta di accesso al Servizio; Il fornitore che fornisce il servizio dato, ad es

L'esibizione da solista della ragazza dai capelli rossi

Su incarico di Hayden, Katie si filma mentre si masturba.

L'esibizione da solista della ragazza dai capelli rossi

Era mezzanotte passata quando Hayden riportò Katie al dormitorio del college dopo la loro serata insieme. Aveva una lezione la mattina presto e non aveva un altro cambio di vestiti dopo essere stata con lui la sera prima.