【问题标题】:How to receive a parameter and use in initState within a stateful widget如何在有状态的小部件中接收参数并在 initState 中使用
【发布时间】:2021-05-23 09:37:35
【问题描述】:

我有一个有状态的小部件,它有一个在初始化时调用的方法。我想知道如何能够从上一个屏幕中获取参数并将其在 initState 中传递给我的初始化方法

class LabDetalheWidget extends StatefulWidget {
  final String path;

  const LabDetalheWidget({
    Key key,
    this.path,
  }) : super(key: key);

【问题讨论】:

标签: flutter dart


【解决方案1】:

我相信你想跨路由传递数据。如果是这样,那么阅读这个颤振食谱的部分你可能会明白 https://flutter.dev/docs/cookbook/navigation/passing-data

【讨论】:

    【解决方案2】:

    你可以这样传递参数

    class MyWidget extends StatefulWidget {
      final String param;
    
      const MyWidget({
        Key key,
        this.param,
      }) : super(key: key);
      
      @override
      _MyWidgetState createState() => _MyWidgetState();
    }
    
    class _MyWidgetState extends State<MyWidget> {
      @override
        void initState() {
          print(widget.param);
          super.initState();
        }
      @override
      Widget build(BuildContext context) {
        return Container(
          
        );
      }
    }
    

    在状态中你可以像这样访问参数

    print(widget.param)

    【讨论】:

    • 那把钥匙是什么
    • 将它传递给StatefullWidget的super是一个很好的做法。您可以查看有关什么是密钥的文档。 api.flutter.dev/flutter/foundation/Key-class.html
    • 好吧,我有这个代码来获取那个页面:Navigator.of(context).pushNamed(AppRoutes.LAB_DETALHE, arguments: item.elemento != null ? item.elemento.fullPath : subPath);
    • 在哪里传参数
    • 我猜你正在使用 MaterialApp 的 onGenerateRoute 方法。所以你可以在那里传递参数。您显示的是正确的,但是当您在 onGenerateRoute 中创建小部件的实例时,您需要再传递一次。
    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2020-02-19
    • 1970-01-01
    • 2019-11-24
    • 2020-11-05
    • 2019-10-06
    相关资源
    最近更新 更多