我正在开发带有供应商体系结构的移动应用程序。
根据设计,我正在使用带有changeNotifier的模型,其中包含对象列表。
当列表对象之一发生更改时,整个列表将被重建,而这本不应该如此。
为了模拟这一点,我创建了一个简单的应用程序,如下所示。第一行是项目列表,而下一行是详细的小部件。但是,每当我同时点击列表小部件和详细小部件时,它们就会被重建。
这是源代码。 Github Link
这是我的问题。
答案 0 :(得分:0)
提供者状态管理包提供者消费者。使用使用者时,您可以选择传入不希望重建的子窗口小部件。然后是一个生成器方法,该方法接受子项(大多数情况下处于静态状态,不需要重建)以及小部件,如果我没有记错的话,该小部件将在您的情况下重建底部细节卡。您可以从文档中获取更多信息,前提是它们具有很好的自我解释性。 https://github.com/rrousselGit/provider/blob/master/README.md
此链接中的中篇文章也对提供程序包的工作原理进行了很多解释。 https://medium.com/flutter-nyc/a-closer-look-at-the-provider-package-993922d3a5a5
答案 1 :(得分:0)
老实说,我认为您不必担心整个重建过程,但是如果麻烦您,可以使用Selector小部件来侦听列表中该项目的特定价值。
答案 2 :(得分:0)
也许为时已晚,但是对于任何人都有这个问题。 Provider 仅仅是一个依赖项注入框架,您不能将其用于状态管理(单独)。 您应该已经向我们提供了代码示例,但是我假设您正在将 Provider 与 ChangeNotifier 结合使用。 在这种情况下,您只需要使用 Consumer 组件,该组件在此函数内部具有 build 函数,就可以将其重建。 Here is a Medium article
另一种方法是使用 Provider 和 Streams 的组合,并且可以像使用 Consumer一样使用 StreamBuilder 小部件。 ..