Flutter-将价值传递给课堂

时间:2018-11-26 13:00:13

标签: dart flutter

我正试图将变量从一个类发送到另一个类。我不使用按钮,所以我需要直接发送。我有这样的东西

 final Elements elemento; <-- MODEL 
  final List<Widget> pages = [
    new ParcelasDetailsChartPage(elemento: widget.elemento),
    new Container(
      color: Colors.red,
    ),
    new Container(
      color: Colors.blue,
    )
  ];

在ParcelasDetailsChartPage

  final Elements elemento;

  ParcelasDetailsChartPage({Key key, this.elemento}) : super(key: key);

返回

  

在初始化器中只能访问静态成员。

执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

根据您的代码:https://gist.github.com/ElHombreSinNombre/4a9dfcbe98a751e87f705748ae1ca3a5

那是因为在构建上下文准备就绪之前,您无法访问小部件。

更改此内容:

        class ParcelasDetailsPageState extends State<ParcelasDetailsPage> {
          static final GlobalKey<ScaffoldState> scaffoldKey =
              GlobalKey<ScaffoldState>();

          int index = 0;

          final List<Widget> pages = [
            new ParcelasDetailsChartPage(elemento: widget.element),
            new Container(
              color: Colors.red,
            ),
            new Container(
              color: Colors.blue,
            )
          ];

          void initState() {
            super.initState();
            Future.delayed(Duration(seconds: 1)).then((_) => showSnackbar);
          }

对此:

        class ParcelasDetailsPageState extends State<ParcelasDetailsPage> {
          static final GlobalKey<ScaffoldState> scaffoldKey =
              GlobalKey<ScaffoldState>();

          int index = 0;

          List<Widget> pages = List();

          void initState() {
            super.initState();
            pages = [
            new ParcelasDetailsChartPage(elemento: widget.element),
            new Container(
              color: Colors.red,
            ),
            new Container(
              color: Colors.blue,
            )
          ];
            Future.delayed(Duration(seconds: 1)).then((_) => showSnackbar);
          }