Я получаю следующую ошибку во время выполнения. Я делаю http-вызов и возвращаю json.
"_TypeError (тип 'Список' не является подтипом типа '() => void')"
class _ForumPostsState extends State<ForumPosts> {
List data;
String categoryID = 'D64D0737-746D-4562-8C10-6445F4069A92';
Future<String> getPostsByCategory() async {
var response = await http.post(
Uri.encodeFull("http://api/ForumPostsByCategory"),
headers: {"Content-Type": "application/json",
'Accept': 'application/json',},
body: json.encode({'categoryID' : categoryID }));
this.setState(
data = json.decode(response.body)
);
print(data[1]["title"]);
return "Success!";
}
Ошибка вылетает в этой строке
data = json.decode(response.body)
Во время отладки я заметил, что JSON был там, это просто ошибки в вызове data = json.decode.
Измените это:
this.setState(
data = json.decode(response.body)
);
К этому:
this.setState(() {
data = json.decode(response.body)
}
);
Подробнее здесь: https://docs.flutter.io/flutter/widgets/State/setState.html
я не уверен, в чем разница, но спасибо, вы работали отлично