flutter 哪里是放置ChangeNotifierProvider的最佳位置?

8wigbo56  于 2023-11-21  发布在  Flutter
关注(0)|答案(1)|浏览(167)

我使用ChangeNotifierProvider。
将使用此ChangeNotifierProvider的消费者仅存在于一个小部件中,而不是跨多个小部件。
所以我想只为那个小部件注册ChangeNotifierProvider,并将其作为消费者使用。
(构建第一个“空白屏幕”->通过调用消费者中的函数加载信息(在使用延迟函数完成构建之后)->重建)。
当我试图通过在构建中调用viewModel(consumer)中的函数来加载信息时,它会出错,因为notifyListeners()函数被调用,它试图在构建未完成时重建。所以我别无选择,只能首先构建一个空白屏幕,然后调用一个函数来初始化信息。
所以,我尝试在顶部注册ChangeNotifierProvider,但由于顶部是登录(所有应用程序的顶部),这种注册也不是低效率的。文档说:(你不想把ChangeNotifierProvider高于必要的(因为你不想污染的范围))!
我在想我能不能做到。我该做什么选择?
1.在相应的小部件中注册ChangeNotifierProvider并将其用作消费者。
1.在顶部注册ChangeNotifierProvider(登录小部件),并通过作为消费者订阅必要的小部件来使用它。
1.使用其他方法

irlmq6kh

irlmq6kh1#

你应该在主.dart文件中添加提供程序,如果有多个提供程序,那么你可以使用MultiProvider

相关问题