我对Flutter中的Provider包的Consumer有疑问。 我不了解“消费者”构建器中“子级”参数的目的
#include
我找不到有关它的任何文档。
答案 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)
您可以在消费者中传递子窗口小部件。更改数据后,您小时候传递的所有小部件都不会重建。
您可以避免使用子级不必要地重建小部件。