Flutter 从颤振中的另一个文件调用未来
我正在尝试从Flutter 从颤振中的另一个文件调用未来,flutter,dart,popup,call,future,Flutter,Dart,Popup,Call,Future,我正在尝试从Future将数据获取到另一个.dart文件 为此,我在Futurecode之后创建了一个类 pageone.dart中的代码: class Popups extends StatefulWidget { @override _PopupsState createState() => _PopupsState(); } class _PopupsState extends State<Popups> { Future oyuncuSec() asy
Future
将数据获取到另一个.dart
文件
为此,我在Future
code之后创建了一个类
pageone.dart中的代码:
class Popups extends StatefulWidget {
@override
_PopupsState createState() => _PopupsState();
}
class _PopupsState extends State<Popups> {
Future oyuncuSec() async {
await showDialog(
context: context,
...
...
}
}
class UserService {
oyuncuSec() {}
}
但是,当我运行页面并按下Raised按钮(Futbolcu Resmi)时,它不会显示弹出窗口。我要坚持这几天。请帮帮我。我看到您创建了一个单独的类,其中包含函数定义,这是正确的方法 您的代码中必须缺少一些最小的内容,请确保按如下方式定义类和函数: 假设您正在编写一个类,该类的函数位于一个名为data.dart的文件中 data.dart应如下所示:
Class DataSource {
Future oyuncuSec() async {
await showDialog(
context: context,
...
...
}
}
现在假设您希望在名为x.dart的文件中使用此函数,如下所示:
在x.dart(具有有状态小部件)中,在构建函数之外:
var dataSource = new Datasource();
//an example function:
getData() async {
await dataSource.oyuncuSec(); //use a .then() in the end if the function oyuncuSec returns something and you want to do something with the result...
}
编辑:如果您不想返回任何内容,只需弹出一个窗口,则无需将其返回类型设置为Future。只需将其定义为
void-oyunsec(){//code-for-popup}
什么是用户服务,为什么要尝试实例化它?我无法使用Popups类而不会出错。这就是我创建UserService的原因。如果不是这样,我可以删除它。这是一个很好的方法,谢谢你的澄清。我建议在“lib”旁边创建一个名为“data”的文件夹,并将新创建的类和函数放在该文件中。在第一页和第二页实例化后使用该函数。我会在稍后写一个详细的答案…感谢您的帮助Yudhishthir!我的data.dart出现错误。我确实照你说的做了。大多数错误表示“找不到方法”。你能帮我解决这个问题吗?你正在导入调用函数的data.dart文件吗?我刚刚解决了错误。现在,我只是在说“未定义的名称‘context’”时出错。“抱歉,您试图提供帮助,但我仍然无法显示弹出窗口。您必须传递上下文,按如下方式定义OYUNUSEC函数:Future OYUNUSEC(BuildContext context)async{…},并且在调用它时,按如下方式将上下文作为参数传递:Wait dataSource.OYUNUSSEC(context);
var dataSource = new Datasource();
//an example function:
getData() async {
await dataSource.oyuncuSec(); //use a .then() in the end if the function oyuncuSec returns something and you want to do something with the result...
}