You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
シグナルフォームbuilds the field tree by walking your model. The objects and arrays it walks through (the **structural layer**) must be plain JavaScript objects and arrays. The values at the **leaves** (positions with no nested fields) are usually primitives (strings, numbers, booleans) or `null`. Native`date`, `month`, `time`, and `week`inputs also accept `Date`, and custom controls can accept any value type they understand.
IMPORTANT: Class instances, `Map`, and `Set`are **not supported in the structural layer**, even though TypeScript will accept them. シグナルフォームdoes not validate the model shape at runtime, so the framework accepts these values without throwing, then produces incorrect behavior in different ways depending on shape:
-**Class instances** lose their prototype on the first write becauseシグナルフォームshallow-copies parent objects on update. Methods, getters, and `instanceof`checks are gone afterward.
72
-
-**Non-extensible or frozen objects inside arrays** throw whenシグナルフォームassigns a tracking symbol to preserve item identity across reorders.
73
-
-**`Map`and`Set`**produce empty field trees, becauseシグナルフォームenumerates children with `Object.keys`.
If your application uses classes for domain modeling, translate to plain objects at the form boundary. See [Translating between form model and domain model](guide/forms/signals/model-design#translating-between-form-model-and-domain-model).
0 commit comments