【问题标题】:How to push a route from ChangeNotifier?如何从 ChangeNotifier 推送路由?
【发布时间】:2020-12-03 06:51:56
【问题描述】:

我的问题很简单:如何从 ChangeNotifier 启动导航? 我有一个与消费者一起设置的仪表板,我想根据 ChangeNotifier 模型中某些操作的结果来更改路线。

之前有人问过类似的问题,但没有得到回答:How to Navigate from ChangeNotifier?

【问题讨论】:

  • 你想导航表单 changeNotififier 。使用 ChangeNotifier {} 的示例类 Aboutus
  • 是的——这正是我想要的。我不知道为什么我没有想到它......
  • 如果您有任何疑问请检查答案让我知道

标签: flutter dart flutter-change-notifier


【解决方案1】:
1. main.dart
 MaterialApp(
navigatorKey: NavigationService().navigatorKey,
)

2 创建新类

class NavigationService {
 final GlobalKey<NavigatorState> navigatorKey =
  new GlobalKey<NavigatorState>();
 GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey<ScaffoldState>();
Future<dynamic> navigateTo(String routeName) {
return navigatorKey.currentState.pushNamed(routeName);
}}
  1. 在 Model 类中的任何函数中使用 this

    NavigationService>().navigateTo(homePageRoute)  // your router name
    

【讨论】:

    【解决方案2】:

    嗯,除了我之外,这对所有人来说似乎都是显而易见的。您只需要将上下文传递给 ChangeNotifier,然后您就可以Navigator.pushNamed(context, routeName);

    我正在寻找一种方法来从适当的小部件树中实现这一点。我没有想到只从模型中执行此操作 - 我仍然不确定这是最佳实践 - 但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 2018-10-26
      • 2023-02-14
      • 2018-08-10
      • 1970-01-01
      • 2019-06-21
      • 2018-03-14
      • 2021-10-27
      相关资源
      最近更新 更多