flutter - 错误:无法以可靠的 null 安全性运行,因为以下依赖项不支持 null 安全性:
问题描述
我正在制作教室预订系统。
class _SearchViewState extends State<SearchView> {
List data = [];
Future<String> getData() async {
http.Response res = await http
.get(Uri.parse("https://gcse.doky.space/api/schedule/buildings"));
this.setState(() {
data = jsonDecode(res.body)["result"];
});
return "success";
}
@override
void initState() {
super.initState();
this.getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('건물 선택')),
body: new ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index) {
return new Card(
child: ListTile(
onTap: () {
Get.to(() => SearchView2(), arguments: data[index]);
},
title: Text(data[index])),
);
},
),
);
}
}
我想将 data[index] 移动到其他视图。
这是第二种观点。
class SearchView2 extends StatefulWidget {
@override
_SearchViewState2 createState() => _SearchViewState2();
}
class _SearchViewState2 extends State<SearchView2> {
String building = Get.arguments;
List data = [];
Future<String> getData() async {
http.Response res = await http.get(Uri.parse(
"https://gcse.doky.space/api/schedule/classrooms?bd=$building"));
this.setState(() {
data = jsonDecode(res.body)["result"];
});
return "success";
}
void _itemtapped() {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ReservationView()), //route here
);
}
@override
void initState() {
super.initState();
this.getData();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('강의실 선택')),
body: new ListView.builder(
itemCount: data == null ? 0 : data.length,
itemBuilder: (BuildContext context, int index) {
return new Card(
child: ListTile(onTap: _itemtapped, title: Text(data[index])),
);
},
),
);
}
}
但是会发生空安全错误。
也许数据没有保存。
我应该在哪里修复代码?
Error: Cannot run with sound null safety, because the following dependencies
don't support null safety:
- package:get
For solutions, see https://dart.dev/go/unsound-null-safety
2
FAILURE: Build failed with an exception.
* Where:
Script 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991
* What went wrong:
Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\src\flutter\bin\flutter.bat'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 8s
Exception: Gradle task assembleDebug failed with exit code 1
这是我运行应用程序时的错误。
我需要移动 data[index] 以使用下一个 API。
我还需要将建筑和演讲室数据发送到预订视图。
解决方案
这是因为您使用的是旧版本的get
颤振包。
- 打开你的
pubsec.yaml
. get: xxxxx
将您的行更改为get: ^4.1.4
(xxxxx 可能小于4.1.4
)- 重新获取您的 pub 依赖项或运行
flutter pub upgrade
. - 然后重建您的应用程序。
这应该解决它。
推荐阅读
- networking - 配置我的小型办公网络 (LAN) 的正确方法是什么
- postgresql - 如何在同一台 Windows 机器上安装 odoo community v14 & v15?
- stata - 包含不同比率的Stata统计摘要
- typescript - 当我尝试使用索引时,数组元素为空
- javascript - 如何在本机反应中将消失的弹出菜单添加到平面列表
- javascript - 如何确保电子邮件只登录一次?
- django - inpage.js:1 MetaMask 不再注入 web3
- javascript - 从刚刚使用 Jquery 添加的新 HTML 元素中获取数据属性
- android - Android11如何更换MediaProvider
- wordpress - Cloudflare 向反向代理全链发出 SSL 错误(通过 docker)