我试图将一个参数 uid 传递给一个像这样的有状态小部件:
class BoardBody extends StatefulWidget {
String uid;
BoardBody({
@required this.uid,
});
当我尝试在 initstate 访问它时,我得到了一个空值。但是,如果我热重新加载页面,则会打印出 widget.uid 值。我做错了什么吗?我希望 uid 可用,以便我可以从数据库中提取一些数据。
@override
void initState() {
// TODO: implement initState
print("user id");
print(widget.uid);
super.initState();
}
我已经像这样将 uid 数据传递给小部件:
BoardBody(uid: uid)
答案 0 :(得分:0)
我认为这是由于您在 main.dart 中使用了路由。 因此,initState() 在构建 Scaffold 后加载。
如果您尝试使用 MaterialPageRoute(builder: (context) => BoardBody()) 构建屏幕/小部件,您将看到结果(打印的 uid)。
答案 1 :(得分:0)
试试这个。
@override
void initState() {
super.initState();
// TODO: implement initState
print("user id");
print(widget.uid);
}
所以 super.initState() 应该在你的打印之上。这应该有效。