如何将 json 数据传递到另一个包含 flutter 底部选项卡导航的屏幕
How to pass json data to another screen that contains bottom tab navigation in flutter
我是 flutter 的新手,现在我有 2 个屏幕,它们是登录屏幕和包含底部选项卡导航器的主屏幕。在我按下登录按钮后,我想将 json 数据传递到我的主屏幕。我已经尝试使用此代码,但我无法访问和调用主屏幕中的 json 数据,是因为我的主屏幕包含底部选项卡导航器吗?或者有没有办法从我的底部标签导航器调用该数据?
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BottomTab(text: my json data,),
));
这是我的底部标签导航代码
class BottomTab extends StatefulWidget {
@override
_BottomTabState createState() => _BottomTabState();
}
class _BottomTabState
extends State<BottomTab> {
final List<Widget> pages = [
HomeScreen(),
];
final PageStorageBucket bucket = PageStorageBucket();
int _index = 0;
Widget _myList(int index) => BottomNavigationBar(
onTap: (int myindex) => setState(() => _index = myindex),
currentIndex: index,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Home')),
],
);
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: _myList(_index),
body: PageStorage(
child: pages[_index],
bucket: bucket,
),
);
}
}
您必须设置 BottomTab
以要求此字符串
这样做:
class BottomTab extends StatefulWidget {
final String text;
BottomTab({this.text});
@override
_BottomTabState createState() => _BottomTabState();
}
class _BottomTabState extends State<BottomTab> {
void initState() {
print(widget.text)
super.initState();
}
我是 flutter 的新手,现在我有 2 个屏幕,它们是登录屏幕和包含底部选项卡导航器的主屏幕。在我按下登录按钮后,我想将 json 数据传递到我的主屏幕。我已经尝试使用此代码,但我无法访问和调用主屏幕中的 json 数据,是因为我的主屏幕包含底部选项卡导航器吗?或者有没有办法从我的底部标签导航器调用该数据?
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => BottomTab(text: my json data,),
));
这是我的底部标签导航代码
class BottomTab extends StatefulWidget {
@override
_BottomTabState createState() => _BottomTabState();
}
class _BottomTabState
extends State<BottomTab> {
final List<Widget> pages = [
HomeScreen(),
];
final PageStorageBucket bucket = PageStorageBucket();
int _index = 0;
Widget _myList(int index) => BottomNavigationBar(
onTap: (int myindex) => setState(() => _index = myindex),
currentIndex: index,
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: Icon(Icons.home), title: Text('Home')),
],
);
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: _myList(_index),
body: PageStorage(
child: pages[_index],
bucket: bucket,
),
);
}
}
您必须设置 BottomTab
以要求此字符串
这样做:
class BottomTab extends StatefulWidget {
final String text;
BottomTab({this.text});
@override
_BottomTabState createState() => _BottomTabState();
}
class _BottomTabState extends State<BottomTab> {
void initState() {
print(widget.text)
super.initState();
}