Dart 类型';字符串';不是预期类型的子类型';int';

Dart 类型';字符串';不是预期类型的子类型';int';,dart,angular-dart,Dart,Angular Dart,我在搜索结果时遇到此错误。现在花了数小时进行调试,但无法发现问题所在。在尝试将id分配给Place对象时,必须存在反序列化问题。但我不是JavaScript专家(这就是为什么我想使用dart)。当然,这些文件会转换成JavaScript,开发者工具调试器会引用生成的JS文件 奇怪的是,它与我的模拟后端一起工作。但它不适用于导水管后端。渡槽本身提供了正确的输出 [{“id”:1,“name”:“Easyhotel”},{“id”:2,“name”:“Hotel Greulich”}] 正在提取所有

我在搜索结果时遇到此错误。现在花了数小时进行调试,但无法发现问题所在。在尝试将id分配给Place对象时,必须存在反序列化问题。但我不是JavaScript专家(这就是为什么我想使用dart)。当然,这些文件会转换成JavaScript,开发者工具调试器会引用生成的JS文件

奇怪的是,它与我的模拟后端一起工作。但它不适用于导水管后端。渡槽本身提供了正确的输出

[{“id”:1,“name”:“Easyhotel”},{“id”:2,“name”:“Hotel Greulich”}]

正在提取所有对象的列表。似乎只与搜索方法有关

任何暗示都将不胜感激

版本

Dart虚拟机版本:2.0.0-dev.68.0(星期二7月10日14:47:26 2018+0200)在“macos_x64”上

公共规范yaml

name: places
description: Cool Places
version: 0.0.1

environment:
  sdk: '>=2.0.0-dev.66.0 <2.0.0'

dependencies:
  angular: ^5.0.0-beta
  angular_forms: ^2.0.0-beta
  angular_router: ^2.0.0-alpha
  http: ^0.11.0            
  stream_transform: ^0.0.6
  angular_components: ^0.9.0-alpha+15

dev_dependencies:
  sass_builder: ^2.0.0
  angular_test: ^2.0.0-beta
  build_runner: ^0.9.0
  build_test: ^0.10.2
  build_web_compilers: ^0.4.0
  test: ^1.0.0
名称:地点
描述:凉爽的地方
版本:0.0.1
环境:

sdk:'>=2.0.0-dev.66.0找到了错误。实际上,在模拟界面中,它是:

dynamic _extractData(Response resp) => json.decode(resp.body)[data];
但是在渡槽接口中,响应没有包含在JSON“data”标记中。所以把它改成

dynamic _extractData(Response resp) => json.decode(resp.body); 
解决了我的问题

因此,当出现以下错误时:

TypeError:无法读取未定义的属性“Symbol(dartx.length)”


这很可能意味着响应可能不包含正确的json。

暂时退出
throw\u handleError(e)以便我们可以看到异常的实际来源。然后重新启动。什么是新的堆栈跟踪?*暂时注释掉…我得到以下错误:异常:TypeError:无法读取未定义的属性“Symbol(dartx.length)”。奇怪,因为我应该收到2个结果。已在上面添加Stacktrace。找到错误。实际上在模拟接口中,它是动态的_extractData(Response resp)=>json.decode(resp.body)[data];,但是在渡槽接口中,响应没有包含在JSON“data”标记中。因此将其更改为动态_extractData(Response resp)=>json.decode(resp.body);解决了我的问题。很抱歉,但我在调试方面仍然有困难。很高兴您发现了错误。
dynamic _extractData(Response resp) => json.decode(resp.body)[data];
dynamic _extractData(Response resp) => json.decode(resp.body);