Dart对象到本机-未实现错误:其他类型的结构化克隆
将dart web应用程序与浏览器历史记录集成在一起,我想将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
窗口.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框架中已经存在的序列化功能。