【发布时间】:2021-07-25 12:05:29
【问题描述】:
我正在使用 API 调用来获取一些数据。我在初始化状态下调用该方法,以便在将小部件添加到树中后立即获取数据。
我在文本小部件中使用该数据,但它显示错误 “方法 '[]' 在 null 上被调用”。
以下是供您参考的代码:
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
class Profile extends StatefulWidget {
final String username;
Profile({this.username});
@override
_ProfileState createState() => _ProfileState();
}
class _ProfileState extends State<Profile> {
var data;
void getData() async {
http.Response response = await http
.get('http://codeforces.com/api/user.info?handles=${widget.username}');
if (response.statusCode == 200) {
data = jsonDecode(response.body);
} else {
print('Something went wrong.');
}
}
@override
void initState() {
super.initState();
getData();
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Column(
children: [
Text('Handle - ${widget.username}'),
Text(data['result'][0]['firstName']), /*This line causes error*/
],
),
),
);
}
}
问题是为什么data字段在init状态下被调用,并且API调用也成功,却为null?
我已经使用注释标记了给出错误的行。
【问题讨论】:
-
结果数组不包含错误信息所指示的任何值
标签: api flutter dart flutter-layout