FilledStacks / FilledStacks/flutter-tutorials

Bottom Navigation Bar Issues

Offen
#95 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Dart
Sterne
4.8k
Forks
1.7k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

We were able to use Bottom navigation bar, by adding parent view "HomeView" in which we are calling all the child views. Views are working just fine.

Now the issue is about the DataService is been called each time, on swap of views. Below is our code for locator.dart

```
locator.registerLazySingleton(() => DialogService());
locator.registerLazySingleton(() => NavigationService());
locator.registerLazySingleton(() => AuthenticationService());
locator.registerLazySingleton(() => DataService());

locator.registerSingleton(ViewModel1());
locator.registerSingleton(ViewModel2());
locator.registerSingleton(ViewModel3());
```
In the view we have added `initialiseSpecialViewModelsOnce: true` `viewModelBuilder: () => locator()` as well.

When we execute:
```
flutter: Error while creating DataService
flutter: Stack trace:
#0 defaultBinaryMessenger. (package:flutter/src/services/binary_messenger.dart:76:7)
#1 defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4)
#2 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
#3 MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:375:5)
#4 new MethodChannelFirestore (package:cloud_firestore_platform_interface/src/method_channel/method_channel_firestore.dart:27:13)
#5 FirestorePlatform.instance (package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart:63:19)
#6 new Firestore (package:cloud_firestore/src/firestore.dart:26:42)
#7 Firestore.instance (package:cloud_firestore/src/firestore.dart:29:36)
#8 new DataService (package:Vaccine/app/service/data.dart:14:67)
#9 setupLocator. (package:Vaccine/app/locator.dart:21:39)
#10 _ServiceFactory.getObject (package:get_it/get_it_impl.dart:128:40)
#11 _GetItImplementation.get (package:get_it/get_it_impl.dart:276:34)
#12 _GetItImplementation.call (package:get_it/get_it_impl.dart:288:12)
#13 new AuthenticationService (package:Vaccine/app/service/auth.dart:10:43)
#14 setupLocator. (package:Vaccine/app/locator.dart:19:39)
#15 _ServiceFactory.getObject (package:get_it/get_it_impl.dart:128:40)
#16 _GetItImplementation.get (package:get_it/get_it_impl.dart:276:34)
#17 _GetItImplementation.call (package:get_it/get_it_impl.dart:288:12)
#18 new ScheduleScreenModel (package:Vaccine/app/screenmodels/view_model_1.dart:14:63)
#19 setupLocator (package:Vaccine/app/locator.dart:24:50)
#20 main (package:Vaccine/main.dart:9:3)
#21 _runMainZoned.. (dart:ui/hooks.dart:241:25)
#22 _rootRun (dart:async/zone.dart:1184:13)
#23 _CustomZone.run (dart:async/zone.dart:1077:19)
#24 _runZoned (dart:async/zone.dart:1619:10)
#25 runZonedGuarded (dart:async/zone.dart:1608:12)
#26 _runMainZoned. (dart:ui/hooks.dart:233:5)
#27 _startIsolate. (dart:isolate-patch/isolate_patch.dart:301:19)
#28 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
flutter: Error while creating AuthenticationService
flutter: Stack trace:
#0 defaultBinaryMessenger. (package:flutter/src/services/binary_messenger.dart:76:7)
#1 defaultBinaryMessenger (package:flutter/src/services/binary_messenger.dart:89:4)
#2 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:140:62)
#3 MethodChannel.setMethodCallHandler (package:flutter/src/services/platform_channel.dart:375:5)
#4 new MethodChannelFirestore (package:cloud_firestore_platform_interface/src/method_channel/method_channel_firestore.dart:27:13)
#5 FirestorePlatform.instance (package:cloud_firestore_platform_interface/cloud_firestore_platform_interface.dart:63:19)
#6 new Firestore (package:cloud_firestore/src/firestore.dart:26:42)
#7 Firestore.instance (package:cloud_firestore/src/firestore.dart:29:36)
#8 new DataService (package:Vaccine/app/service/data.dart:14:67)
#9 setupLocator. (package:Vaccine/app/locator.dart:21:39)
#10 _ServiceFactory.getObject (package:get_it/get_it_impl.dart:128:40)
#11 _GetItImplementation.get (package:get_it/get_it_impl.dart:276:34)
#12 _GetItImplementation.call (package:get_it/get_it_impl.dart:288:12)
#13 new AuthenticationService (package:Vaccine/app/service/auth.dart:10:43)
#14 setupLocator. (package:Vaccine/app/locator.dart:19:39)
#15 _ServiceFactory.getObject (package:get_it/get_it_impl.dart:128:40)
#16 _GetItImplementation.get (package:get_it/get_it_impl.dart:276:34)
#17 _GetItImplementation.call (package:get_it/get_it_impl.dart:288:12)
#18 new ScheduleScreenModel (package:Vaccine/app/screenmodels/view_model_1.dart:14:63)
#19 setupLocator (package:Vaccine/app/locator.dart:24:50)
#20 main (package:Vaccine/main.dart:9:3)
#21 _runMainZoned.. (dart:ui/hooks.dart:241:25)
#22 _rootRun (dart:async/zone.dart:1184:13)
#23 _CustomZone.run (dart:async/zone.dart:1077:19)
#24 _runZoned (dart:async/zone.dart:1619:10)
#25 runZonedGuarded (dart:async/zone.dart:1608:12)
#26 _runMainZoned. (dart:ui/hooks.dart:233:5)
#27 _startIsolate. (dart:isolate-patch/isolate_patch.dart:301:19)
#28 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
```
Code for view_mode_1.dart 14:63 is:
```
final AuthenticationService _authenticationService = locator();
final DataService _dataService = locator();

```

Kindly suggest how to rectify this?

_Originally posted by @akyjoe in https://github.com/FilledStacks/flutter-tutorials/issues/86#issuecomment-669177084_

Other issue is, how can we switch BottomNavigationBar tabs programmatically or by tapping any button in current view?

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.