ChangeNotifier Class 中的函数未调用

Function in ChangeNotifier Class Not Called

我有一个 Flutter 应用程序,提供程序作为状态管理器。 ChangeNotifierProvier 位于我的应用程序的最顶部(即在 MaterialApp 小部件上方)。

  1. 我有一个ChangeNotifierclass如下:
class AmountManager extends ChangeNotifier {
  String amount;
  void changeAmount(String newAmount) {
    amount = newAmount;
    notifyListeners();
  }
}
  1. 然后我有另一个 class 和 TextField :
class MyTextField extends StatelessWidget {
  @override 
  Widget build(BuildContext context) {
    return TextField(
      //some decorations here
      onChanged(value) {
        Provider.of<AmountManager>(context).changeAmount(value);
      },
    );
  }
}
  1. 在主应用程序下的另一个 class 中,我调用 amount 变量:
class MyText extends StatelessWidget {
  @override 
  Widget build(BuildContext context) {
    return Text(
      Provider.of<AmountManager>(context).amount,
    );
  }
}

问题是无法调用 Provider.of(...) 方法。我看了一些教程,找不到背后的原因。如果我使用静态文本而不是 AmountManager 对象,它就可以工作。程序只在MyTextclass.

中使用amount的初始值

你觉得我哪里不对?

提前谢谢你,

onChanged中使用Provider.of()时需要listen: false

onChanged: (value) {
  Provider.of<AmountManager>(context, listen: false).changeAmount(value);
},

详情见this