我在我的应用程序中使用 MVVM 架构,使用一个简单的(自制)Provider(不是包 Provider,但问题是相同的)和静态
Provider.of<T>(BuildContext context)
方法,其中 T extands ChangeNotifier
。一切都运转良好。
现在我想通过抛出一个
ProviderNotFoundException
(如果 Provider.of<T>(context)
返回 null,即)来防止 Provider 的错误使用。如果在当前上下文中没有相应的 ViewModel 的情况下调用它。
我发现的不同示例中从未处理过 Provider.of() 抛出异常的情况(在 Medium、Google、Flutter Doc 状态管理示例...)。就我而言,我并不总是希望应用程序崩溃,我想使用
AlertDialog
提醒用户。然后,用户可以停留在主菜单屏幕上并尝试其他页面。
我遇到了一些问题和疑问:
如何正确处理?
很可能您缺少在 MultiProvider 中添加您的 Provider !