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