消费者提供者颤动中孩子的目的是什么

时间:2020-02-18 20:01:17

标签: flutter provider

我对Flutter中的Provider包的Consumer有疑问。 我不了解“消费者”构建器中“子级”参数的目的

#include

我找不到有关它的任何文档。

2 个答案:

答案 0 :(得分:5)

子级是不需要在提供程序内部提供数据的任何小部件,因此,在更新数据时,由于不需要数据而不会重新创建它们,而是将它们作为对建造者的引用


    Consumer(
       builder: (context, myModel, child) {
         // child will refer to the MaterialButton provided as the child argument in the 
        //Consumer named parameter,
        / doing stuff using myModel variable
       }
       child: MaterialButton( 
               child: Text("Do some action"), 
              onPressed: () {
             // do some actions
    },),);

由于MaterialButton不需要提供程序的状态,而是它在后代树中的状态,因此无需重新渲染该状态,因此它可以传递回生成器,以节省内存并提高性能

答案 1 :(得分:1)

您可以在消费者中传递子窗口小部件。更改数据后,您小时候传递的所有小部件都不会重建。

您可以避免使用子级不必要地重建小部件。