Flutter / Dart:类型'int'不是类型转换中类型'String'的子类型

时间:2019-11-23 10:03:00

标签: flutter dart

我已经回答了这个问题的答案,但是都没有涵盖我似乎遇到的情况(由于缺乏理解答案,我可能错了)。因此,我应该问。

我已经用相同参数和数据的Postman测试了API,并且效果很好。

onPressed: ()async {
                        print('Counter: $counter, Type: $type, Phone: $phone, Token: $token');
                        print(counter.runtimeType);
                        if(counter != 0){
                          print('above post now');
                          var response = await http.post(
                            acceptPass, //final URL in string

                            body:{
                              'type': type, //string
                              'phone': phone, //string
                              'qty': counter //int. Tried sending as string too, didn't work.
                            },
                            headers: {
                              'token': token //string
                            }
                          );
                          print("something with the response here ");
                          print(response.statusCode);
                        }

                      },

所有值都不为null,在将它们放入post方法之前,我确实将它们打印出来并进行了检查。我还尝试将每个变量类型转换为字符串,然后将其发布,但无济于事。

enter image description here

1 个答案:

答案 0 :(得分:0)

body必须是Map<String, String>。因此,您需要先将int转换为字符串,然后再将其放入地图中。

.toString()之后添加counter

要让编译器协助您进行类型检查,可以按如下所示显式键入映射。

  body: <String, String>{
    'fieldName': 'fieldValue',
    //etc