我在 Flutter 中使用 ChangeNotifier 中的 notifyListeners。如果我notifyListeners()连续调用 3 次会怎样?在这种情况下,UI 会更新多少次?
notifyListeners全部代码:
class Data with ChangeNotifier
{
String _data = 'some text';
String get getData => _data;
void changeString(String newString)
{
_data = newString;
notifyListeners();
notifyListeners();
notifyListeners();
}
}
用法:
class MyTextField extends StatelessWidget {
const MyTextField({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return TextField(
onChanged: (newData) => context.read<Data>().changeString(newData),
);
}
}
小部件树(如果它很重要):
MyTextField是 的孩子Widget2。
Widget2是 的孩子Widget1。
Widget1是 的孩子HomePage。
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Container(child: Text(context.watch<Data>().getData),),
),
body: Center(
child: Widget1(),
)
);
}
}