如何在HTTP调用中修复奇怪的Dart错误

时间:2019-04-01 21:04:49

标签: dart flutter

我在执行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调用上的错误。

1 个答案:

答案 0 :(得分:1)

更改此:

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

  );

对此:

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

此处有更多信息:https://docs.flutter.io/flutter/widgets/State/setState.html