Ir al contenido

Campos personalizados

Un FieldDefinition valida configuración, normaliza valores, serializa valores y describe un renderer.

const scoreField = {
kind: "score",
schema,
getDefaultValue: () => 0,
normalizeValue: (value) => Number(value ?? 0),
serializeValue: (value) => value,
validate: (value) => (value < 0 ? ["Score must be positive."] : []),
describe: (config, context) => ({
component: "score-field",
props: { ...config, value: context.state.value },
}),
};

validate puede ser async. Para código nuevo, devuelve promesas reales en vez de thenables manuales.