Get.to can only be executed once.
import 'package:flutter/material.dart';
import 'package:get/get.dart';
void main() {
runApp(App());
}
class App extends StatelessWidget {
final routes = [];
@override
Widget build(BuildContext context) {
return GetMaterialApp(initialRoute: '/', getPages: [
GetPage(name: "/", page: () => A()),
GetPage(name: "/b", page: () => B()),
]);
}
}
class A extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Text('a'),
onPressed: showBottomSheet,
),
);
}
}
class B extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
child: Text('b'),
onPressed: () {
Get.back(result: '123');
},
),
);
}
}
showBottomSheet() {
print('a open bottomSheet');
Get.bottomSheet(Container(
color: Colors.white,
child: Wrap(
children: [
ListTile(
title: Text('#1 Get.to'),
onTap: () {
print('onTap #1');
Get.to(B()).then((value) => print('B -> A(#1): $value'));
},
),
ListTile(
title: Text('#2 Navigator.push'),
onTap: () {
print('onTap #2');
Navigator.push(
Get.context,
MaterialPageRoute(builder: (context) => B()),
).then((value) => print('B -> A(#2): $value'));
},
),
],
),
));
}
$ flutter run -d chrome
Launching lib/main.dart on Chrome in debug mode...
Syncing files to device Chrome...
14,362ms (!)
Debug service listening on ws://127.0.0.1:42893/WbB9rlTKbSU=
Warning: Flutter's support for web development is not stable yet and hasn't
been thoroughly tested in production environments.
For more information see https://flutter.dev/web
๐ฅ To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".
a open bottomSheet
onTap #1
B -> A(#1): 123
onTap #1
โโโก EXCEPTION CAUGHT BY GESTURE โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
The following JSNoSuchMethodError was thrown while handling a gesture:
NoSuchMethodError: invalid member on null: 'then'
When the exception was thrown, this was the stack:
packages/xxx/main.dart 56:20 <fn>
packages/flutter/src/material/ink_well.dart 993:19 [_handleTap]
packages/flutter/src/material/ink_well.dart 1111:38 <fn>
packages/flutter/src/gestures/recognizer.dart 183:24 invokeCallback
packages/flutter/src/gestures/tap.dart 598:11 handleTapUp
packages/flutter/src/gestures/tap.dart 287:5 [_checkUp]
packages/flutter/src/gestures/tap.dart 259:7 acceptGesture
packages/flutter/src/gestures/arena.dart 157:12 sweep
packages/flutter/src/gestures/binding.dart 362:20 handleEvent
packages/flutter/src/gestures/binding.dart 338:14 dispatchEvent
packages/flutter/src/rendering/binding.dart 267:11 dispatchEvent
packages/flutter/src/gestures/binding.dart 295:7 [_handlePointerEvent]
packages/flutter/src/gestures/binding.dart 240:7 [_flushPointerEventQueue]
packages/flutter/src/gestures/binding.dart 213:7 [_handlePointerDataPacket]
lib/_engine/engine/window.dart 773:13 _invoke1
lib/_engine/engine/window.dart 374:5 invokeOnPointerDataPacket
lib/_engine/engine/pointer_binding.dart 129:14 [_onPointerData]
lib/_engine/engine/pointer_binding.dart 479:16 <fn>
lib/_engine/engine/pointer_binding.dart 440:21 <fn>
lib/_engine/engine/pointer_binding.dart 210:16 <fn>
Handler: "onTap"
Recognizer:
TapGestureRecognizer#c6d63
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
onTap #1
Another exception was thrown: NoSuchMethodError: invalid member on null: 'then'
onTap #1
Another exception was thrown: NoSuchMethodError: invalid member on null: 'then'
onTap #1
Another exception was thrown: NoSuchMethodError: invalid member on null: 'then'
onTap #2
B -> A(#2): 123
onTap #2
B -> A(#2): 123
onTap #2
B -> A(#2): 123
Get.to(Page(),preventDuplicates:false);
Most helpful comment
Get.to(Page(),preventDuplicates:false);