【问题标题】:Flutter how to print value pass through screen?Flutter如何通过屏幕打印值?
【发布时间】:2020-04-09 20:51:36
【问题描述】:

我在 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> {
}

我需要在_ViewPostScreenState 中打印id 的值我尝试使用简单的打印但显示错误任何人都可以帮忙?

【问题讨论】:

  • 发布错误信息

标签: flutter dart


【解决方案1】:

问题是您没有在方法内部使用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);
  }
}

【讨论】:

  • 我可以在_ViewPostScreenState中使用这个方法吗?
  • 是的,你可以,我刚刚添加了完整的解决方案。请看一看。
  • 实际上他不需要创建方法method 来从您的回答中提到的状态类访问widget.id
  • 是的,你是对的,他可以在任何方法中做到这一点,我只是创建了一个独立的方法来让事情看起来很简单。
  • 谢谢。另外,我需要在 initState() 中调用一个方法。再次感谢
【解决方案2】:
onTap: () {
      Navigator.push(
        context,
            MaterialPageRoute(
                 builder: (_) {
print(id); // print here
                      return ViewPostScreen(
                       id: id,
                      );
                   }
                 ),
               );
            },

【讨论】:

  • 需要在其他页面打印
【解决方案3】:

您可以使用widget从状态访问小部件的属性

print(widget.id.toString());

您不能在类主体中调用打印函数。它需要在一个函数内。您可以使用 initState,因为它是第一个运行的函数。

void initState() {
    super.initState();
    print(widget.id.toString());
}

请注意,您的 State 类中还需要一个构建方法

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    相关资源
    最近更新 更多