【发布时间】:2019-04-14 19:25:42
【问题描述】:
从 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;
...
}
【问题讨论】:
-
这完全不可能。小部件部分无法访问其状态
-
你能解释一下你为什么要这样做吗?如果你想做一些初始化,状态类有 initState 方法。
标签: function flutter state stateful