diff --git a/lib/main.dart b/lib/main.dart index 47771c6..4f0f32a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -32,7 +32,7 @@ void main() async { overrides: [ themeProvider, ], - child: const MyApp(), + child: const QlApp(), ), ); if (Platform.isAndroid) { @@ -41,11 +41,16 @@ void main() async { } } -class MyApp extends ConsumerWidget { - const MyApp({Key? key}) : super(key: key); +class QlApp extends ConsumerStatefulWidget { + const QlApp({Key? key}) : super(key: key); @override - Widget build(BuildContext context, WidgetRef ref) { + ConsumerState createState() => QlAppState(); +} + +class QlAppState extends ConsumerState { + @override + Widget build(BuildContext context) { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { @@ -64,7 +69,7 @@ class MyApp extends ConsumerWidget { if (!kReleaseMode) { showDebugBtn(context, btnColor: Colors.blue); } - return getIt().isLogined() ? const HomePage() : LoginPage(); + return getIt().isLogined() ? const HomePage() : const LoginPage(); }, ), // home: LoginPage(), diff --git a/lib/utils/extension.dart b/lib/utils/extension.dart index 8dab197..a447202 100644 --- a/lib/utils/extension.dart +++ b/lib/utils/extension.dart @@ -1,14 +1,20 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:qinglong_app/main.dart'; +//不推荐使用, 性能为o(n) extension ContextExt on BuildContext { + static QlAppState? _state; + T read(ProviderBase provider) { - return (this as WidgetRef).read(provider); + _state ??= findRootAncestorStateOfType(); + return _state!.ref.read(provider); } T watch(ProviderBase provider) { - return (this as WidgetRef).watch(provider); + _state ??= findRootAncestorStateOfType(); + return _state!.ref.watch(provider); } }