Flutter 如何在flatter中访问从一个类到另一个类的变量
我想访问Flutter 如何在flatter中访问从一个类到另一个类的变量,flutter,flutter-test,Flutter,Flutter Test,我想访问\u HomePageState class showDetailOfUniversity extends StatelessWidget { final String UniversityId; showDetailOfUniversity({Key key, @required this.UniversityId}) : super(key: key); @override Widget build(BuildContext context)
\u HomePageState
class showDetailOfUniversity extends StatelessWidget {
final String UniversityId;
showDetailOfUniversity({Key key, @required this.UniversityId}) : super(key:
key);
@override
Widget build(BuildContext context)
{
return (
HomePage()
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
//
var temp2 = showDetailOfUniversity();
var temp = temp2.getUniversityId;
/// here i want to access the code but failed
}
class showDetailOfUniversity扩展了无状态小部件{
最终弦乐大学;
showDetailOfUniversity({Key Key,@required this.UniversityId}):超级(Key:
键);
@凌驾
小部件构建(构建上下文)
{
返回(
主页()
);
}
}
类主页扩展了StatefulWidget{
@凌驾
_HomePageState createState()=>\u HomePageState();
}
类_HomePageState扩展状态{
//
var temp2=showDetailOfUniversity();
var temp=temp2.getUniversityId;
///这里我想访问代码,但失败了
}
针对您的代码的解决方案:
var temp2 = showDetailOfUniversity(UniversityId: university_id);
var temp = temp2.UniversityId; //this will return university_id
这里的问题是您创建了另一个
showDetailOfUniversity
实例,该实例的成员将具有另一个值。您没有初始化字符串UniversityId
,因此在您设置它之前,它的值为null
因此,当您在temp
中调用showDetailOfUniversity()
时,此实例中String UniversityId
的值为null,因为在此特定实例中没有给定值
您可以在StatefulWidget
的构造函数中传递String UniversityId
,如下所示:
class ShowDetailOfUniversity extends StatelessWidget {
final String universityId;
ShowDetailOfUniversity({Key key, @required this.universityId})
: super(key: key);
@override
Widget build(BuildContext context) {
return HomePage(universityId: universityId);
}
}
class HomePage extends StatefulWidget {
final String universityId;
const HomePage({Key key, this.universityId}) : super(key: key);
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var universityId;
@override
void initState() {
super.initState();
universityId = widget.universityId;
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Text(universityId);
}
}
class ShowDetailOfUniversity扩展了无状态小部件{
最终弦乐大学;
ShowDetailOfUniversity({Key,@required this.universityId})
:super(key:key);
@凌驾
小部件构建(构建上下文){
返回主页(universityId:universityId);
}
}
类主页扩展了StatefulWidget{
最终弦乐大学;
const主页({Key,this.universityId}):超级(Key:Key);
@凌驾
_HomePageState createState()=>\u HomePageState();
}
类_HomePageState扩展状态{
var大学;
@凌驾
void initState(){
super.initState();
universityId=widget.universityId;
}
@凌驾
小部件构建(构建上下文){
//TODO:实现构建
返回文本(大学ID);
}
}
它是如何失败的,您有什么错误?constructor是从其他地方调用的。所以它的平均值存在于UniversityId变量中,所以现在我们必须访问类“_HomePageState”中的变量,所以当我访问变量“temp”时,它简单地显示null value.constructor是从其他地方调用的。所以它的平均值出现在UniversityId变量中,所以现在我们必须访问类“\u HomePageState”中的变量