本当の初心者の質問であることをお許しいただければ幸いですが、この問題に対する適切な解決策を見つけることができませんでした…</p>
単純なクラスがあれば...
library segmented_buttons_list;
import 'package:web_ui/observe.dart';
@observable
class SegmentedButtonData {
String description;
int index;
SegmentedButtonData(this.description, this.index);
String toString() => "$description";
}
…そして、詳細にそのクラスを持つ WebComponent からイベントをディスパッチします…
library segmented_buttons_list;
import 'dart:html';
import 'package:web_ui/web_ui.dart';
import 'package:segmented_buttons_list/segmented_button_data.dart';
class SegmentedButtonComponent extends WebComponent {
int index;
String description;
mainAction() {
SegmentedButtonData detail = new SegmentedButtonData(description, index);
CustomEvent event = new CustomEvent("MainActionEvent", canBubble: true, cancelable: true, detail: detail);
print("SegmentedButtonComponent dispatching ${event.type} for '${event.detail}'.");
dispatchEvent(event);
}
}
…その詳細を意図したタイプとして適切にテストして使用するにはどうすればよいですか?
「is」を使用してみましたが、イベント ハンドラーでは機能しませんでした...
if (event.detail is SegmentedButtonData) {
SegmentedButtonData newSBD = event.detail;
int newIndex = newSBD.index * 3;
print(newIndex.toString());
}
…そして、「if」をコメントアウトすると、「タイプ 'String' は 'newSBD' のタイプ 'SegmentedButtonData' のサブタイプではありません。」というエラーが表示されました。
「as」を使ってみましたが、うまくいきませんでした。
SegmentedButtonData のインスタンスを送信したにもかかわらず、「詳細」オブジェクトは文字列のようです。
シリアライズ/デシリアライズする必要がありますか、それとも詳細が不足していますか? (ハハ)。