Dart 和 Flutter:如何在另一个 class 中调用一个 class 方法
Dart & Flutter: How to call for a class method inside another class
这里是 Dart 的新手,如果这是一个多余的问题,请提前道歉;我找不到答案。
我创建了一个函数 simulateRequest
然后将它传递给它自己的 class SimReq
并单独保存在一个文件中。
我在主文件中导入了 class,但是当我尝试执行它时,出现错误,这里是 class 代码:
class SimReq {
void simulateRequest() async {
// first future holds family name
String famNameFunc = await Future.delayed(Duration(seconds: 2), (){
String famName = 'Shanshi';
return famName;
});
// second future holds first name
String compName = await Future.delayed(Duration(seconds: 1), (){
String fstName = 'Yoshi';
String compName = '$fstName - $famNameFunc';
return compName;
});
print(compName);
}
SimReq(){
simulateRequest();
}
}
这里是主要文件代码:
import 'package:flutter/material.dart';
import 'package:wtap/pages/simreq.dart';
class ChoseLocation extends StatefulWidget {
@override
_ChoseLocationState createState() => _ChoseLocationState();
}
class _ChoseLocationState extends State<ChoseLocation> {
int counter = 0;
@override
void initState() {
super.initState();
print('This is the initial state.');
SimReq.simulateRequest(); // I am trying to execute the function here.
}
如果您想访问它的方法,您必须实例化 SimReq class 的对象:
SimReq simReq = SimReq();
simReq.simulateRequest();
或使用 static
关键字使此函数可在 class
之外访问
static void simulateRequest() async {
这里是 Dart 的新手,如果这是一个多余的问题,请提前道歉;我找不到答案。
我创建了一个函数 simulateRequest
然后将它传递给它自己的 class SimReq
并单独保存在一个文件中。
我在主文件中导入了 class,但是当我尝试执行它时,出现错误,这里是 class 代码:
class SimReq {
void simulateRequest() async {
// first future holds family name
String famNameFunc = await Future.delayed(Duration(seconds: 2), (){
String famName = 'Shanshi';
return famName;
});
// second future holds first name
String compName = await Future.delayed(Duration(seconds: 1), (){
String fstName = 'Yoshi';
String compName = '$fstName - $famNameFunc';
return compName;
});
print(compName);
}
SimReq(){
simulateRequest();
}
}
这里是主要文件代码:
import 'package:flutter/material.dart';
import 'package:wtap/pages/simreq.dart';
class ChoseLocation extends StatefulWidget {
@override
_ChoseLocationState createState() => _ChoseLocationState();
}
class _ChoseLocationState extends State<ChoseLocation> {
int counter = 0;
@override
void initState() {
super.initState();
print('This is the initial state.');
SimReq.simulateRequest(); // I am trying to execute the function here.
}
如果您想访问它的方法,您必须实例化 SimReq class 的对象:
SimReq simReq = SimReq();
simReq.simulateRequest();
或使用 static
关键字使此函数可在 class
static void simulateRequest() async {