# Valores, snapshots, y submission

<PageBadges />

## Valores iniciales y anulaciones

Utilice `initialValues` para el registro que se está editando. `overrideValues` tienen prioridad y son útiles
para valores de host autorizados, como un estado proporcionado por una aplicación.

Para una restauración completa, prefiera `initialSnapshot`:

```jsx
<FormRenderer
  schema={schema}
  initialSnapshot={{
    raw_values: saved.raw_values,
    repeatable: saved.repeatable,
    timestamps: saved.timestamps,
  }}
  onSnapshotChange={(snapshot, change) => {
    if (change.dirty) queueDraft(snapshot)
  }}
  onSubmit={saveRecord}
/>
```

Un snapshot inicial reemplaza a `initialValues` para los valores de campo sin procesar. También restaura anidado
entradas repetibles y marcas de tiempo cliente/servidor como un estado coherente.

## Observar drafts

`onSnapshotChange(snapshot, change)` se llama primero con `{ kind: "seed", dirty: false }`. Más tarde
los cambios de usuario usan `{ kind: "change", dirty: boolean }`.

El snapshot contiene:

```js
{
  raw_values: {},
  repeatable: {},
  timestamps: {
    created_at_client: null,
    updated_at_client: null,
    created_at_server: null,
    updated_at_server: null,
  },
}
```

## Enviar registros

`onSubmit(record, meta)` recibe el registro estructurado descrito en
[Salida y registros](/es/core/output-records). `meta` contiene `rawValues`, `repeatable`, `timestamps`,
y `validationSummary`.

Si `onSubmit` devuelve una promesa, una superposición configurada con `autoCloseOverlayOnSubmit` se cierra solo
después de que se resuelva la promesa. Un rechazo lo deja abierto. Use `submitBlockedReason` para la aplicación
requisitos fuera de schema y `externalDirty` para el estado de la aplicación fuera de renderer.
