Мое приложение имеет простой экран домашней страницы
class StartPage extends StatelessWidget {}
и два дополнительных экрана. Пользователи перенаправляются на дополнительные экраны с кодом, подобным
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => Page2(),
),
и
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => Page3(),
),
Page2()
, с простым секундомером, который я реализую с помощью провайдера. Я хочу добавить идентичный код секундомера к Page3()
. Я бы подумал, что StartPage()
дальше по «дереву», чем Page2()
и Page3()
, и что если я оберну * метод построения StartPage
с Провайдером (вместе с кодом виджета Потребителя внутри соответствующих классов)
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider<StopWatchProvider>(
create: (context) => StopWatchProvider(),
child: Scaffold()
тогда секундомер должен работать как положено как в Page2()
, так и в Page3()
(поддерживается этой публикацией SO ). Но это выдает ошибку из-за невозможности найти провайдера, и вместо этого мне нужно обернуть компоновщиков для Page2()
и Page3()
с провайдером.
Чего мне не хватает?