flutter 使用riverpod提供GoRouter示例的正确方法是什么?

ztmd8pv5  于 2023-03-31  发布在  Flutter
关注(0)|答案(2)|浏览(193)

我试图提供一个GoRouter的示例,但这会导致显示“The riverpod_generator package does not support ChangeNtifier values”警告:

我的问题是,实现这一目标的正确方法是什么?

vuv7lop3

vuv7lop31#

这里的警告是为了警告你,当状态被销毁时,Riverpod既不会监听ChangeNotifier,也不会处理它(如果你使用ChangeNotifierProvider,就会发生这种情况)。
如果你不关心这些点,你可以安全地忽略掉皮棉。
我建议手动处理通知程序,如下所示:

@riverpod
// ignore: unsupported_provider_value
GoRouter example(ExampleRef ref) {
  final router = GoRouter(...);
  ref.onDispose(router.dispose);
  return router;
}
p1tboqfb

p1tboqfb2#

看看Andrea的这篇精彩文章:https://codewithandrea.com/articles/flutter-navigate-without-context-gorouter-riverpod/
基本上,你想要的是一个带有GoRouter对象本身的非生成器:

final goRouterProvider = Provider<GoRouter>((ref) {
  return GoRouter(...);
});

相关问题