从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;
...
}
答案 0 :(得分:0)
您可以简单地做到这一点,但我不建议这样做
class _MyWidget extends StatefulWidget {
State state;
@override
State<StatefulWidget> createState() {
state = _MyWidgetState();
return state;
}
}
我认为可以通过其他方式解决您的问题,然后从小部件访问状态