【发布时间】:2016-03-28 17:47:05
【问题描述】:
将 dart web 应用程序与浏览器历史记录集成,我想将 dart 对象推送到 window.history 堆栈。
飞镖对象。
class AppState {
final int index;
AppState(this.index){
}
}
API https://api.dartlang.org/stable/1.15.0/dart-html/History/pushState.html
它适用于例如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)
【问题讨论】:
-
我认为你应该在github.com/dart-lang/sdk报告一个错误
-
好的。写了这个问题。 github.com/dart-lang/sdk/issues/26108