Flutter:如何在状态类内部调用函数或访问状态类属性?

时间:2018-11-12 04:31:21

标签: function flutter state stateful

从StatefulWidget类中,我想这样在State类中调用一个函数:

class Parent extends StatefulWidget{

  // access _ParentState: iWantToAccessThis
  // OR
  // run from _ParentState: iWantToRunThis

  @override
  _ParentState createState() => new _ParentState();
}

class _ParentState extends State<Parent>{
  List<Object> iWantToAccessThis;
  void iWantToRunThis(){
    // do something
  }
  ...
}

更新:通过将我的列表设为静态列表,找到了解决方法。由于将始终只有一个版本的列表,因此可以使用。但是,对于在状态内运行函数或访问非列表或静态属性(尽管我倾向于无法访问非静态属性),我仍然希望获得正确的答案。

class Parent extends StatefulWidget{

  static void _getList(){
    _ParentState._iWantToAccessThis;
  }

  @override
  _ParentState createState() => new _ParentState();
}

class _ParentState extends State<Parent>{
  static List<Object> _iWantToAccessThis;
  List<Object> get iWantToAccessThis => _iWantToAccessThis;
  ...
}

1 个答案:

答案 0 :(得分:0)

您可以简单地做到这一点,但我不建议这样做

class _MyWidget extends StatefulWidget {
  State state;
  @override
  State<StatefulWidget> createState() {
    state = _MyWidgetState();
    return state;
  }
}

我认为可以通过其他方式解决您的问题,然后从小部件访问状态