颤振如何通过屏幕打印值?

时间:2020-04-09 12:34:51

标签: flutter dart

我正在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的值,我尝试用简单的打印方法来显示错误,但是任何人都可以提供帮助?

enter image description here

3 个答案:

答案 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类中还需要一个构建方法