Moh*_*dan 5 provider dart flutter
我是提供商的新手,我有两个关于重建树的问题
我有这门课
class Myprovider extends ChangeNotifier {
bool isFound= false;
bool get isFoundM=> isFound;
void changeStatus(bool status){
isFound= status;
notifyListeners();
}
}
Run Code Online (Sandbox Code Playgroud)
我有stfl一个小部件,其中包含以下代码build method
Myprovider myProvider = Myprovider ();
Column(
mainAxisAlignment: myProvider.isFound? MainAxisAlignment.center: MainAxisAlignment.start,
children:[
myProvider.isFound? const Text('Hello flutter'):Container(),
const Text('Hello dart'),
TextButton(
onPressed:(){
myProvider.changeStatus(true);
},
child: Text('tab me')
)
]
);
Run Code Online (Sandbox Code Playgroud)
1-当我选择按钮时,Hello flutter Text 仅会重建其自身还是整个树都会重建?
2-上面我的专栏中的 widgets 属性怎么样?..即使它的父级包装了多个小部件,它也只会重建该属性?
如果没有我该如何处理这个
谢谢
Stateful widget 与提供者无关。
Stateful Widget 仅在使用 SetState 时才有用。构建上下文下的每个小部件都会更新,并且它不会帮助您更新任何特定的小部件
与提供商一起构建某些小部件
与提供商合作时,您可以构建某些小部件,而无需重建整个内容
为此,您可以使用Consumer
Foo(
child: Consumer<A>(
builder: (_, a, child) {
return Bar(a: a, child: child);
},
child: Baz(),
),
)
Run Code Online (Sandbox Code Playgroud)
注意:-在此示例中,当 A 更新时,只有 Bar 会重建。Foo 和 Baz 不会进行不必要的重建。
| 归档时间: |
|
| 查看次数: |
3167 次 |
| 最近记录: |