【发布时间】:2018-12-04 09:27:28
【问题描述】:
我有一个正在处理的颤振项目,我无法将整个代码放入其中,因为它的代码超过 500 行,所以我将尝试像我使用 imp 一样简单地问我的问题。部分代码。
我有一个有状态的小部件,并且在扩展State<MusicPlayer>的类下的有状态小部件中有一些函数
文件lib\main.dart
只需要一个简单的函数,比如
class MyAppState extends State<MyApp>{
...
void printSample (){
print("Sample text");
}
...
这个函数在主类的有状态小部件中。
还有一个文件lib\MyApplication.dart
这个文件也有一个有状态的小部件,我可以做点什么,这样我就可以在这里调用函数printSample() ..
class MyApplicationState extends State<MyApplication>{
...
@override
Widget build(BuildContext context) {
return new FlatButton(
child: new Text("Print Sample Text"),
onPressed :(){
// i want to cal the function here how is it possible to call the
// function
// printSample() from here??
}
);
}
}
【问题讨论】:
-
如果你能确保一个小部件是另一个小部件的后代,你可以使用InheritedWidget
-
@JacobPhillips 在那种情况下使用
context.ancestorStateOfType -
@RémiRousselet 我需要更多帮助,我正在尝试将数据从子小部件发送到父小部件,所有流和可听的示例都相反,这正是我的问题所在.我想从一个子小部件调用一个函数到一个父小部件,很抱歉没有提到上面的内容..
-
如果您的孩子也应该提交活动,请将整个
StreamController传递给您的孩子,而不仅仅是Stream。