我试图提供一个GoRouter的示例,但这会导致显示“The riverpod_generator package does not support ChangeNtifier values”警告:
GoRouter
我的问题是,实现这一目标的正确方法是什么?
vuv7lop31#
这里的警告是为了警告你,当状态被销毁时,Riverpod既不会监听ChangeNotifier,也不会处理它(如果你使用ChangeNotifierProvider,就会发生这种情况)。如果你不关心这些点,你可以安全地忽略掉皮棉。我建议手动处理通知程序,如下所示:
ChangeNotifierProvider
@riverpod // ignore: unsupported_provider_value GoRouter example(ExampleRef ref) { final router = GoRouter(...); ref.onDispose(router.dispose); return router; }
p1tboqfb2#
看看Andrea的这篇精彩文章:https://codewithandrea.com/articles/flutter-navigate-without-context-gorouter-riverpod/基本上,你想要的是一个带有GoRouter对象本身的非生成器:
final goRouterProvider = Provider<GoRouter>((ref) { return GoRouter(...); });
2条答案
按热度按时间vuv7lop31#
这里的警告是为了警告你,当状态被销毁时,Riverpod既不会监听ChangeNotifier,也不会处理它(如果你使用
ChangeNotifierProvider
,就会发生这种情况)。如果你不关心这些点,你可以安全地忽略掉皮棉。
我建议手动处理通知程序,如下所示:
p1tboqfb2#
看看Andrea的这篇精彩文章:https://codewithandrea.com/articles/flutter-navigate-without-context-gorouter-riverpod/
基本上,你想要的是一个带有GoRouter对象本身的非生成器: