Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振提供者最佳实践_Flutter_Provider - Fatal编程技术网

Flutter 颤振提供者最佳实践

Flutter 颤振提供者最佳实践,flutter,provider,Flutter,Provider,我一直在试验提供者软件包,通常能够让它做我想要它做的事情。然而,在某些情况下,我不确定我所做的是否是最佳实践 例如,假设我有一个设置页面,其中包含各种不相关的选项——比如主题选项、通知选项、一些特定于应用程序的过滤选项等等 我的问题是,这些选项中的每一个是否都应该有自己的专用于单个值的类,以便只重建依赖于该单个值的小部件树的部分。或者它们都应该在同一个设置Provider类中,并且有某种方法可以单独使用此类中的字段,以避免过度重建 还是我完全忽略了大局?任何帮助都很好,谢谢 我找到的解决方案是将

我一直在试验提供者软件包,通常能够让它做我想要它做的事情。然而,在某些情况下,我不确定我所做的是否是最佳实践

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

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


还是我完全忽略了大局?任何帮助都很好,谢谢

我找到的解决方案是将所有值放在一个类中,例如
设置Provider
。然后,不使用<代码>提供者或<代码>消费者

使用
选择器
。例如,要获取/设置设置的通知选项,可以使用
选择器包装小部件,如下所示-

Selector<SettingsProvider, bool>(
   builder: (context, notifications, child) {
      (notifications) 
      ? return Text('Notifications are on') 
      : return Text('Notifications are off')
   }, 
   selector: (context , settingsPro) => settingsPro.notifications,
),
选择器(
生成器:(上下文、通知、子对象){
(通知)
?返回文本('通知开启')
:返回文本('通知已关闭')
}, 
选择器:(上下文,settingsPro)=>settingsPro.notifications,
),
这将显示通知是否打开,并且仅在通知选项更改时重新生成

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