Как исправить странную ошибку dart при вызове http

Я получаю следующую ошибку во время выполнения. Я делаю 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.

0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените это:

this.setState(
     data = json.decode(response.body)

  );

К этому:

 this.setState(() {
     data = json.decode(response.body)
    }
 );

Подробнее здесь: https://docs.flutter.io/flutter/widgets/State/setState.html

я не уверен, в чем разница, но спасибо, вы работали отлично

Sam Cromer 02.04.2019 04:47

Другие вопросы по теме