我正在2个屏幕之间传递值,我需要知道如何简单地打印值?
这就是我传递价值的方式
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> {
}
我需要在id
中打印_ViewPostScreenState
的值,我尝试用简单的打印方法来显示错误,但是任何人都可以提供帮助?
答案 0 :(得分:1)
问题是您没有在方法内部而不是在类级别使用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);
}
}
答案 1 :(得分:0)
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) {
print(id); // print here
return ViewPostScreen(
id: id,
);
}
),
);
},
答案 2 :(得分:0)
您可以使用widget
print(widget.id.toString());
您不能在类主体中调用打印功能。它必须在一个函数内。您可以使用initState,因为它是第一个运行的函数。
void initState() {
super.initState();
print(widget.id.toString());
}
请注意,您在State类中还需要一个构建方法