尝试了几种方法,但需要对应用程序使用pushNamed。我曾尝试根据情况更改状态,但收到一条奇怪的错误消息,想知道这是否是执行此操作的最佳方法。
有没有人达到最佳方法?要求使用pushNamed在整个应用程序中传递参数。
MainView.dart的当前版本
class MainView extends StatefulWidget {
@override
_MainViewState createState() => new _MainViewState();
}
class _MainViewState extends State<MainView>
with SingleTickerProviderStateMixin {
final _navigatorKey = GlobalKey<NavigatorState>();
int _currentIndex = 0;
bool _bottomNav;
@override
void initState() {
// () => bottomNavigationRemove(currentRoute);
}
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomPadding: false,
backgroundColor: Color(0xffF9FBFB),
body: Navigator(
key: _navigatorKey,
initialRoute: '/',
onGenerateRoute: (RouteSettings settings) {
WidgetBuilder builder;
switch (settings.name) {
case '/':
builder = (BuildContext context) => new OnboardingPage();
break;
case '/login':
builder = (BuildContext context) => new LoginPage();
print(settings.name);
break;
case '/register':
builder = (BuildContext context) => new RegisterPage();
print(settings.name);
break;
case '/feed':
builder = (BuildContext context) => Feed();
break;
case '/createvisit':
builder = (BuildContext context) => CreateVisit();
break;
}
return MaterialPageRoute(
builder: builder,
settings: settings,
);
}),
// body: currentPage,
bottomNavigationBar: (BottomNavigator(_currentIndex)),
);
}
}