如何将 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();
   }