Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart对象到本机-未实现错误:其他类型的结构化克隆_Dart_Dart Html - Fatal编程技术网

Dart对象到本机-未实现错误:其他类型的结构化克隆

Dart对象到本机-未实现错误:其他类型的结构化克隆,dart,dart-html,Dart,Dart Html,将dart web应用程序与浏览器历史记录集成在一起,我想将dart对象推送到窗口.history堆栈中 省道物体 class AppState { final int index; AppState(this.index){ } } 原料药 例如,它与Map toMap()方法以及匹配的工厂构造函数一起工作,但这是蛮力方式。仅仅依靠dart框架就可以得到下面的stackdump,这表明AppState遗漏了一些序列化方法。有人知道吗 Uncaught Unhandled ex

将dart web应用程序与浏览器历史记录集成在一起,我想将dart对象推送到
窗口.history
堆栈中

省道物体

class AppState {
  final int index;

  AppState(this.index){
  }
}
原料药

例如,它与
Map toMap()
方法以及匹配的工厂构造函数一起工作,但这是蛮力方式。仅仅依靠dart框架就可以得到下面的stackdump,这表明
AppState
遗漏了一些序列化方法。有人知道吗

Uncaught Unhandled exception:
UnimplementedError: structured clone of other type
#0      _StructuredClone.walk (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/conversions.dart:136)
#1      _StructuredClone.convertDartToNative_PrepareForStructuredClone (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/conversions.dart:151)
#2      convertDartToNative_PrepareForStructuredClone (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/conversions_dartium.dart:4)
#3      convertDartToNative_SerializedScriptValue (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/conversions.dart:33)
#4      History.pushState (dart:html:19793)
#5      AppHistoryCtrl.pushState (package:mintest/app_history_ctrl.dart:35:20)

这就是应该发生的事情。为了进入历史,它通过指定的结构化克隆算法进行序列化。这不知道如何处理任意省道对象。例如,如果我们以这种方式将某些内容推入历史记录,某些JavaScript代码可能会将其删除,而这无法处理任意Dart对象。因此,是的,它需要转换成地图,或者结构化克隆算法能够理解的其他结构。

我认为您应该在Ok中报告一个bug。我写了一篇关于这个问题的文章。谢谢你的解释。我担心带有“toMap()”方法的解决方案是否覆盖了Dart框架中已经存在的序列化功能。