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”中的变量