其他类中的某个类的访问变量Flutter

时间:2020-06-03 08:43:59

标签: flutter

我有一个带有这样的变量的类:

class MyDragTarget extends StatefulWidget {
  final String assetImage;
  final String name;

  MyDragTarget(this.name, this.assetImage);
}

编辑:对不起,下面的错误代码。我知道如何使用widget.name来获取父母的名字。但是我如何获得其他班级的名字。 我应该使用InheritedWidget吗?要使用InheritedWidget,我必须学习提供程序吗?

我想在另一个类中访问MyDragTarget的名称和assetImage:

class Another extends StatefulWidget {
  print(MyDragTarget.name);
}

3 个答案:

答案 0 :(得分:1)

您可以使用widget.name。例如,如果您尝试访问assetImage,则可以使用print('${widget.assetImage}');,这只是访问StatefulWidget中的变量。对于任何类,您无法执行此操作。

答案 1 :(得分:0)

您可以使用小部件

    widget.assetImage
    wiget.name
    print('${wiget.name}');

答案 2 :(得分:0)

如果要在其创建状态类中使用,则可以通过widget.assetImage Like

访问它
class _MyDragPlayerState extends State<MyDragPlayer> {
    ...
    // print('${widget.assetImage }');
    ...
}

但是如果您想访问其他类,则可以将变量声明为静态变量,例如

class MyDragTarget extends StatefulWidget {
  static String assetImage;
  static String name;

  MyDragTarget(this.name, this.assetImage);

  @override
  _MyDragTargetState createState() => _MyDragTargetState();
}

,然后在其他班级,您可以通过

访问
class OtherClass{
    ...
    // print('${MyDragTarget.assetImage }');
    ...
}

首先检查null安全性,并了解使用静态变量的利弊。