0

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

之前有人问过类似的问题,但没有得到解答:如何从 ChangeNotifier 导航?

4

2 回答 2

0
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. 在模型类中在任何函数中使用它

    NavigationService>().navigateTo(homePageRoute)  // your router name
    
于 2020-08-13T20:49:28.490 回答
0

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

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

于 2020-08-13T20:38:00.323 回答