Flutter 多个 notifyListeners 调用

问题描述

我在颤动中使用 ChangeNotifier 中的 notifyListeners。如果我连续调用 notifyListeners() 三次会发生什么?在这种情况下,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),);
  }
}

小部件树(如果它很重要):

MyTextFieldWidget2 的孩子。

Widget2Widget1 的孩子。

Widget1HomePage 的孩子。

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(),)
    );
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)