【发布时间】:2020-05-18 16:45:19
【问题描述】:
我正在开发一个玩具应用程序,它是一个在线商店应用程序。我使用Provider 进行状态管理。随着它的进展,我注意到不容易实现的模式。我想了解您对此有何看法。我会解释这个案子。
有一个 productsScreen 显示产品列表,它从 ProductsProvider 获取产品列表。现在它只是从服务器获取所有产品。
还有另一个小部件是 MenuBarWidget。这个小部件包含一些东西,包括搜索框。与 ProductScreen 一样,它有一个名为 MenuBarProvider 的提供程序。现在,当用户在 MenuBarWidget 的搜索框中输入搜索词时,它会更新 MenuBarProvider;然后以某种方式 ProductsProvider 必须看到该更改并相应地调整产品列表。你是怎样做的?两个提供者如何通信?
我知道它可以在小部件中处理,但这看起来很丑陋。理想情况下,我想从 ProductsProvider 收听 MenuBarProvider;但我不知道该怎么做,我什至不确定这是否是个好主意。
欢迎提出任何想法。
【问题讨论】:
-
个人当我必须跟踪的应用程序的状态变得复杂时,我创建一个块来保存状态,然后触发事件来更新它,我在小部件中监听状态,所有这些业务逻辑与 UI 分离。 pub.dev/packages/flutter_blocyoutube.com/watch?v=3tm-R7ymwhc