我有一个以 Provider 作为状态管理器的 Flutter 应用程序。位于ChangeNotifierProvier
我的应用程序的最顶部(即在 MaterialApp 小部件上方)。
- 我有一
ChangeNotifier
堂课如下:
class AmountManager extends ChangeNotifier {
String amount;
void changeAmount(String newAmount) {
amount = newAmount;
notifyListeners();
}
}
- 然后我有另一堂课
TextField
:
class MyTextField extends StatelessWidget {
@override
Widget build(BuildContext context) {
return TextField(
//some decorations here
onChanged(value) {
Provider.of<AmountManager>(context).changeAmount(value);
},
);
}
}
- 在主应用程序下的另一个类中,我调用了
amount
变量:
class MyText extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Text(
Provider.of<AmountManager>(context).amount,
);
}
}
问题是Provider.of(...)
无法调用该方法。我看了一些教程,找不到背后的原因。如果我使用静态文本而不是 AmountManager 对象,它可以工作。amount
程序只使用类中的初始值MyText
。
你觉得我哪里不对?
先感谢您,