【发布时间】:2020-03-07 02:30:38
【问题描述】:
我希望能够将屏幕上的文字从白天更改为黑夜,具体取决于太阳落山与否。我找到了这个 api (https://sunrise-sunset.org/api) 和最近这个包 sunrise_sunset: "^1.0.3",但我遇到了困难。
这是一个更大的项目的一部分,它将是一个地图 (google_maps),它会根据一天中的时间(日出和日落)自动更改主题
我知道,无论何时使用 await,都必须使类异步,我已经这样做了,但是我遇到了错误。
我只是将包示例选项卡中的代码复制到我的项目中
https://pub.dev/packages/sunrise_sunset#-example-tab-
我真的很困惑,所以非常感谢任何帮助。
谢谢
import 'package:flutter/material.dart';
import 'package:sunrise_sunset/sunrise_sunset.dart';
void main() => runApp(JsonApiDemo());
class JsonApiDemo extends StatefulWidget {
JsonApiDemo({Key key}) : super(key: key);
@override
_JsonApiDemoState createState() => _JsonApiDemoState();
}
class _JsonApiDemoState extends State<JsonApiDemo> async {
var response = await SunriseSunset.getResults(latitude: 39.001735, longitude: -119.752744);
if (response.success) {
print('Sunrise: ${response.data.sunrise}');
print('Sunset: ${response.data.sunset}');
} else {
print(response.error);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Hello World!',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Hello World!'),
),
body: Center(
child: Text('Hello World!'),
),
),
);
}
}
缺少 State.build 的具体实现。 尝试实现缺少的方法,或将类抽象化。
一个类声明必须有一个主体,即使它是空的。 尝试添加一个空正文。
函数必须有一个明确的参数列表。 尝试添加参数列表。
await 表达式只能在异步函数中使用。 尝试用“async”或“async*”标记函数体。
未引用声明“build”。 尝试删除“build”的声明。
【问题讨论】:
-
你不标记类
async- 你标记方法(或顶级函数)。您还有一些甚至不在方法中的语句(if等)