Questions tagged «flutter-provider»

1
何时在Flutter中使用Provider.of <X>与Consumer <X>
我仍然在扑朔迷离地围绕状态管理技术,对何时何地使用Provider.of&lt;X&gt;vs. 感到困惑Consumer&lt;X&gt;。我从文档中了解(我认为),当我们要访问数据时在这两者之间进行选择时,可以使用Provider.of,但不需要更改UI。因此,以下内容(来自文档)可以访问数据并在发生新事件时更新UI: return HumongousWidget( // ... child: AnotherMonstrousWidget(// &lt;- This widget will rebuild on new data events // ... child: Consumer&lt;CartModel&gt;( builder: (context, cart, child) { return Text('Total price: ${cart.totalPrice}'); }, ), ), ); 而在我们只需要数据的地方,不想使用UI进行重建,我们可以Provider.of&lt;X&gt;将listen参数设置为false,如下所示: Provider.of&lt;CartModel&gt;(context, listen: false).add(item); \\Widget won't rebuild 但是,listen由于不是必需的,因此以下内容也将运行: Provider.of&lt;CartModel&gt;(context).add(item); \\listener optional 因此,这给我带来了一些问题: 这是区别Provider.of&lt;X&gt;和区分的正确方法吗Consumer&lt;X&gt;?前者不会更新UI,后者会更新吗? 如果listen未设置为,false则默认情况下将重新构建小部件还是不重新构建?如果listen设置为true怎么办? 为什么要Provider.of选择完全重建UI的选项Consumer呢?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.