Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 1.59 KB

File metadata and controls

40 lines (28 loc) · 1.59 KB

1.2.58

OnDataChanged の発火順序が変わりました

Field の値が変わった時の処理順が次のように変わりました。

変更前 変更後
1 Layout の OnFieldDataChanged 発火 Field の OnDataChanged 発火
2 親 Field の通知 / UI 再描画 拡張フック
3 Field の OnDataChanged 発火 Layout の OnFieldDataChanged 発火
4 拡張フック 親 Field の通知 / UI 再描画

よくなる例

「List 内 Field の OnDataChangedSetError → 親 List の OnChildDataChanged で集計」というパターンが正しく動くようになります。変更前は親が先に呼ばれて検出漏れしていました。

影響

Field の OnDataChanged の中で「自動更新される他 Field の最新値」を読んでいたコードは、古い値が見えるようになります。

例: composite ID(複数 Field を組み合わせて自動生成される ID)の更新後の値を、ソース Field の OnDataChanged から読んでいた場合、変更前は更新後 ID が見えていましたが、変更後は更新前 ID が見えます。

対処

該当する処理は、IdField 自身の OnDataChanged に移してください。

// 変更前: ソース Field の OnDataChanged で Id を見ていた
void Code_OnDataChanged()
{
    Toaster.Info($"新しいID: {Id.Value}");  // 古い ID が見えるようになった
}

// 変更後: IdField 自身の OnDataChanged で書く
void Id_OnDataChanged()
{
    Toaster.Info($"新しいID: {Id.Value}");
}