首页 > 解决方案 > Flutter navState 上下文

问题描述

我搜索了一种通过通知导航的方法,我必须找到在小部件范围之外使用上下文的解决方案,所以我创建了全局变量和导航器状态并使用它,它工作正常。现在我在想为什么我必须通过每个路由推送小部件的上下文,为什么不在每个路由推送上使用导航器状态。

import 'package:flutter/material.dart';

/// Global variables
/// * [GlobalKey<NavigatorState>]
class GlobalVariable {
  /// This global key is used in material app for navigation through firebase notifications.
  /// [navState] usage can be found in [notification_notifier.dart] file.
  static final GlobalKey<NavigatorState> navState = GlobalKey<NavigatorState>();
}

添加到 MaterialApp

MaterialApp(
        title: 'myapp',
        navigatorKey: GlobalVariable.navState,



Navigator.push(GlobalVariable.navState.currentContext, MaterialPageRoute(builder: (BuildContext context) => RoutePage(child: ContactForm())));

代替

(context) => Navigator.push(context, MaterialPageRoute(builder: (BuildContext context) => RoutePage(child: ContactForm())));

标签: flutter

解决方案


推荐阅读