我正在跟踪一个tutorial,我得到了这个错误,不知道它意味着什么,也不知道为什么会发生。而且,我的编辑器没有显示我的代码中的任何问题。只有两个文件与此问题相关,以下是它们的代码:
世界时间:
import 'package:http/http.dart';
import 'dart:convert';
import 'package:intl/intl.dart';
class WorldTime {
String location;
String url;
String time = "";
String flag = "";
WorldTime({ required this.location, required this.url});
Future<void> getTime() async {
// getting info and decoding it
Response response = await get(
Uri.parse("http://worldtimeapi.org/api/timezone/$url"));
Map use = jsonDecode(response.body);
// extracting usefuls from it
String datetime = use['datetime'];
int offsetHours = int.parse(use['utc_offset'].substring(1, 3));
int offsetMinutes = int.parse(use['utc_offset'].substring(4, 6));
// converting into readable format
DateTime now = DateTime.parse(datetime);
now = now.add(Duration(hours: offsetHours, minutes: offsetMinutes));
time = (DateFormat.jm().format(now)).toString();
}
}
字符串
正在加载文件:
import 'package:flutter/material.dart';
import 'package:world_time/services/world_time.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
class Loading extends StatefulWidget {
const Loading({super.key});
@override
State<Loading> createState() => _LoadingState();
}
class _LoadingState extends State<Loading> {
void setupWorldTime() async {
WorldTime instance = WorldTime(location: "Kolkata", url: "Asia/Kolkata", );
await instance.getTime();
}
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
Navigator.pushNamed(context, "/home");
return const Scaffold(
backgroundColor: Colors.blue,
body: SpinKitWanderingCubes(
color: Colors.green,
size: 50.0,),
);
}
}
型
我试着在谷歌上搜索它,结果很多,但没有一个对我有帮助。我也尝试了一些调整我的代码,但没有帮助太多。
2条答案
按热度按时间3qpi33ja1#
不允许推送生成块中其他页面。
问题就在这里:
字符串
您可以使用
FutureBuilder
或在didChangeDependcies内运行代码的数据
代码将在页面构建完成后调用。
92dk7w1h2#
到你的建筑另一个小部件在当前小部件构建完成之前,在你的代码中,你正在尝试在构建方法中导航,所以每次发生变化时,构建方法都会调用。
字符串
如果您想在某些操作完成后导航到另一个页面,可以使用如下方法
型