我有一个带有这样的变量的类:
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);
}
答案 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安全性,并了解使用静态变量的利弊。