[英]How to resolve “Only static members can be accessed in initializers” in flutter?
[英]Instance members can't be accessed from a static method Flutter
我试图在我的代码中调用playRefreshBar
,但是我得到这样的警告
实例成员不能从静态方法访问
这是我的静态代码
static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
playRefreshBar();
});
}
代码playRefreshBar
void playRefreshBar() {
timer = Timer.periodic(Duration(milliseconds: refreshTime), (Timer t){
final random = new Random();
final data = [
new Spending('2013', random.nextInt(1000000)),
new Spending('2014', random.nextInt(1000000)),
new Spending('2015', random.nextInt(1000000)),
new Spending('2016', random.nextInt(1000000)),
new Spending('2017', random.nextInt(1000000)),
new Spending('2018', random.nextInt(1000000)),
new Spending('2019', random.nextInt(1000000)),
];
return[
new charts.Series(id: 'Spending',
data: data,
domainFn: (Spending sp, _) => sp.year,
measureFn: (Spending sp , _) => sp.spending,
labelAccessorFn: (Spending sp, _) => '${sp.year}: \$${sp.spending}'
)
];
});
}
静态方法无法调用实例方法的原因是因为不包括您要使用的实例。
由于可以创建将要使用该实例方法的任意数量的实例对象,因此静态(单个全局方法)需要知道要引用的实例对象。
static List<charts.Series<Spending, String>> createRandomData(){
Timer(Duration(milliseconds:1000),(){
instance.playRefreshBar();
});
}
实例在哪里
final instance = new ClassThatHasPlayRefreshBar();
或者,您将需要使实例方法也变为静态
static void playRefreshBar()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.