У меня есть приложение Flutter с провайдером в качестве менеджера штата. ChangeNotifierProvier
находится в самом верху моего приложения (ie. Над виджетом 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(...)
не может быть вызван. Я посмотрел несколько уроков и не смог найти причину этого. Если я использую текст stati c вместо объекта AmountManager, он работает. Программа использует только начальное значение amount
в MyText
классе.
Что, по-вашему, я ошибаюсь?
Заранее спасибо,