Моя проблема связана с шаблоном / библиотекой провайдера.
Я создал несколько классов состояний следующим образом (я заменил имена содержимого / переменных, чтобы попытаться сохранить простоту)
class State1 with ChangeNotifier{
String _s;
set s(String newS){
_s = newS;
notifyListeners();
}
}
а затем я использую мультипровайдера для его передачи (создаю объекты в инициализации виджета, который действует как родительский для всего в приложении).
child: MultiProvider(
providers: [
ChangeNotifierProvider(builder: (context) => state1),
],
child: Stack(
alignment: Alignment.center,
children: stackChildren,
),
К которому затем обращаются в методе сборки дочерних виджетов, используя
state1Var = Provider.of<State1>(context);
И все это прекрасно работает ..
Мой вопрос, когда я получаю с помощью навигационных кнопок я больше не будет доступа государства.
onPressed: (() {
Navigator.push(
contextField,
MaterialPageRoute(builder: (context) => NewPage()),
);
}),
Как я получаю эту ошибку
Could not find the correct Provider<State1> above this NewPage Widget...
Мне удалось получить это с помощью этого
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Consumer(builder: (),child: NewPage(),)),
);
Но когда я вытащил виджет с помощью navigator.pop (), состояние нельзя было использовать, поскольку в нем говорилось, что оно было удалено. Я делаю это неправильно или что-то упускаю?
Извините, если я усложнил это. Пришлось удалить много кода.
Спасибо за вашу помощь :)