gpt4 book ai didi

Flutter Provider 最佳实践

转载 作者:行者123 更新时间:2023-12-04 01:26:30 26 4
gpt4 key购买 nike

我一直在试用提供程序包,并且通常能够让它执行我希望它执行的操作。但是,在某些情况下,我不确定我所做的是否完全是最佳实践。

例如,假设我有一个设置页面,其中包含各种不相关的选项 - 例如主题选项、通知选项、应用程序特定的一些过滤器选项等。

我的问题是,这些选项中的每一个是否都应该有自己的类专用于单个值,以便只有依赖于该单个值的小部件树的部分重建。或者它们应该都在同一个 SettingsProvider 类中,并且有某种方法可以单独使用此类中的字段以避免过度重建?

还是我完全错过了大局?任何帮助都会非常感谢!

最佳答案

我找到的一个解决方案是将所有值放在一个类中,例如 SettingsProvider .然后,而不是使用 Provider.of<>Consumer<> ,

使用Selector<> .例如,要获取/设置设置的通知选项,您可以用 Selector 包装小部件像这样 -

Selector<SettingsProvider, bool>(
builder: (context, notifications, child) {
(notifications)
? return Text('Notifications are on')
: return Text('Notifications are off')
},
selector: (context , settingsPro) => settingsPro.notifications,
),

这应该显示通知是否打开,并且仅在通知选项更改时重建。

Here is the provider doc page

Here is an article about Selector

如果有更好的解决方案,请告诉我。

关于Flutter Provider 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61840986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com