我想推送一个使用ChangeNotifierProxyProvider的页面,因此需要新页面及其提供者位于祖先提供者之下。使用Navigator.push(..)将我的新页面放在小部件树的顶部,在我需要访问的祖先上方。
这是我有问题的功能。 SurveyEditorViewModel是我的祖先提供者,我需要从SurveyViewerViewModel访问。
showSurveyViewer(BuildContext context) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return ChangeNotifierProxyProvider<SurveyEditorViewModel, SurveyViewerViewModel>(
create: (_) => SurveyViewerViewModel(),
update: (_, surveyEditorViewModel, surveyViewerViewModel) =>
surveyViewerViewModel..update(surveyEditorViewModel),
child: SurveyViewerPage(),
);
},
),
);
}
我如何将页面(及其提供者)推送到祖先提供者下方?