Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unhandled Exception: 'package:flutter/src/widgets/routes.dart': Failed assertion: line 1537 pos 12: 'scope != null': is not true.🐛 #1009

Closed
TENX-S opened this issue Jan 13, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@TENX-S
Copy link

TENX-S commented Jan 13, 2024

The following exception occurred when calling showDialog from MenuFlyoutItem:

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'package:flutter/src/widgets/routes.dart': Failed assertion: line 1537 pos 12: 'scope != null': is not true.
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
#2      ModalRoute.willPop (package:flutter/src/widgets/routes.dart:1537:12)
#3      NavigatorState.maybePop (package:flutter/src/widgets/navigator.dart:5225:74)
#4      MenuFlyoutItem.build.<anonymous closure> (package:fluent_ui/src/controls/flyouts/menu.dart:285:33)
#5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:315:24)
#6      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:652:11)
#7      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:309:5)
#8      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:242:7)
#9      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:670:9)
#10     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:98:12)
#11     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:143:9)
#12     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:633:13)
#13     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:141:18)
#14     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:127:7)
#15     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:495:19)
#16     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:475:22)
#17     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:430:11)
#18     GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:420:7)
#19     GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:383:5)
#20     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:330:7)
#21     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:299:9)
#22     _invoke1 (dart:ui/hooks.dart:328:13)
#23     PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:409:7)
#24     _dispatchPointerDataPacket (dart:ui/hooks.dart:262:31)

Minimal reproducible code:

import 'package:fluent_ui/fluent_ui.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return const FluentApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final controller = FlyoutController();

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  void _showDialog() {
    showDialog<bool>(
      context: context,
      builder: (context) => ContentDialog(
        title: const Text('Sure to do something?'),
        actions: [
          FilledButton(
            child: const Text('Yes'),
            onPressed: () {
              Navigator.pop(context, true);
            },
          ),
          Button(
            child: const Text('No'),
            onPressed: () => Navigator.pop(context, false),
          ),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return NavigationView(
      content: ScaffoldPage(
        content: Center(
          child: FlyoutTarget(
            controller: controller,
            child: Button(
              onPressed: () {
                controller.showFlyout(
                  builder: (context) => MenuFlyout(
                    items: [
                      MenuFlyoutItem(
                        text: const Text('Operation'),
                        onPressed: _showDialog,
                      ),
                    ],
                  ),
                );
              },
              child: const Text('show dialog'),
            ),
          ),
        ),
      ),
    );
  }
}
test.mp4
@bdlukaa bdlukaa added the bug Something isn't working label Jan 14, 2024
@MarlonSantosDev
Copy link

Current version 4.8.5, the problem persists

@bdlukaa
Copy link
Owner

bdlukaa commented Jan 31, 2024

this hasn't landed on pub.dev yet. You can use the code from master, see this

@bdlukaa
Copy link
Owner

bdlukaa commented Feb 6, 2024

@MarlonSantosDev Published a new version!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants