美文网首页
Flutter中使用GlobalKey获取子widget中数据

Flutter中使用GlobalKey获取子widget中数据

作者: 刘铁崧 | 来源:发表于2020-12-04 17:11 被阅读0次

    可以获取子控件state、widget、context

    class APPHomePage extends StatefulWidget {
      @override
      _APPHomePageState createState() => _APPHomePageState();
    }
    class _APPHomePageState extends State<APPHomePage> {
      final GlobalKey<_TestChildState> testChildKey = GlobalKey();
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: TestChild(key: testChildKey),
          floatingActionButton: FloatingActionButton(onPressed: (){
            print(testChildKey.currentState.widget.name);//获取子控件数据
            print(testChildKey.currentState.message);//获取子控件state中的数据
            testChildKey.currentState.test();//调用子控件方法
          }),
        );
      }
    }
    

    子widget

    class TestChild extends StatefulWidget {
      final String name = "cy";
      TestChild({Key key}):super(key : key);
      @override
      _TestChildState createState() => _TestChildState();
    }
    
    class _TestChildState extends State<TestChild> {
      final String message = "hello world";
      @override
      Widget build(BuildContext context) {
        return Container(
          child: Text("data"),
        );
      }
      void test(){
        print("test");
      }
    }
    

    打印:

    flutter: cy
    flutter: hello world
    flutter: test
    

    相关文章

      网友评论

          本文标题:Flutter中使用GlobalKey获取子widget中数据

          本文链接:https://www.haomeiwen.com/subject/npeiwktx.html