child 在 Consumer Provider Flutter 中的用途是什么

What is the purpose of child in Consumer Provider Flutter

我有一个关于 Flutter 中的 Consumer 或 Provider 包的问题。 我不明白 Consumer

的构建器中参数 "child" 的用途
Consumer<MyModel>(builder: (context, myModel, child) {
// doing stuff using myModel variable
});

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

您可以在消费者中传递子部件。当数据更改时,您小时候传递的任何小部件都不会重建。

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

子项是不需要提供程序内部数据的任何小部件,因此当数据更新时,不会重新创建它们,因为它们不需要数据,而是被传递作为对构建器的引用。


    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 不需要提供者的状态,但它在后代树中,因此无需重新渲染它,因此它会传回构建器,以节省内存并提高性能