提供程序对同一模型使用2个变量,一个监听,另一个不监听

时间:2020-04-27 20:40:51

标签: flutter flutter-provider

正如您可以阅读代码中的注释一样,我需要从行或listTile(位于ListView内)不同位置的模型中获取信息。但是大多数时候没有监听/需要UI重建。在该行的某个子小部件的某个地方,我确实需要UI更新。

什么是较少的资源密集型?如果solution2的资源消耗较少,可以这样做吗? (该模型作为ChangeNotifierProvider在另一个文件中提供)

解决方案1:

@override
Widget build(BuildContext context) {

// use it in many places in my row or listTile
final myModel = Provider.of<MyModel>(context); 

return Row(children: <Widget>[...

解决方案2:

@override
Widget build(BuildContext context) {

// will use it in many places
final myModelNotListening = Provider.of<MyModel>(context, listen: false); 

// (same model as above!! but) will use it just at on or two places in my row or listTile
final myModelListening = Provider.of<MyModel>(context); 

return Row(children: <Widget>[...

非常感谢!

0 个答案:

没有答案