我在两个屏幕之间传值,我需要知道如何简单地打印值?
这就是我发送价值的方式
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => ViewPostScreen(
id: id,
),
),
);
},这是我的第二页
class ViewPostScreen extends StatefulWidget {
final int id;
ViewPostScreen({Key key, @required this.id}) : super(key: key);
@override
_ViewPostScreenState createState() => _ViewPostScreenState();
}
class _ViewPostScreenState extends State<ViewPostScreen> {
}我需要在_ViewPostScreenState中打印id的值,我尝试使用简单的打印,但显示错误有人可以帮助吗?

发布于 2020-04-09 20:41:53
问题是您并没有在方法内部使用print,而是在类级别使用它。创建一个方法,然后在其中使用print。
void method() {
print(...);
}完整的解决方案:
class ViewPostScreen extends StatefulWidget {
final int id;
ViewPostScreen({Key key, @required this.id}) : super(key: key);
@override
_ViewPostScreenState createState() => _ViewPostScreenState();
}
class _ViewPostScreenState extends State<ViewPostScreen> {
void method() {
print(widget.id);
}
}发布于 2020-04-09 20:38:28
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) {
print(id); // print here
return ViewPostScreen(
id: id,
);
}
),
);
},发布于 2020-04-09 20:41:06
可以使用widget从州中访问微件的属性
print(widget.id.toString());不能在类体中调用print函数。它需要在一个函数中。您可以使用initState,因为它是第一个运行的函数。
void initState() {
super.initState();
print(widget.id.toString());
}请注意,您的State类中还需要一个build方法
https://stackoverflow.com/questions/61121284
复制相似问题