# Valores, snapshots, y submission

<PageBadges />

## Estado inicial y restauración

Utilice `initialValues` para una semilla de registro ordinaria. `overrideValues` tiene prioridad y palo
Para una restauración completa, prefiera `initialSnapshot`:

```jsx
<FormRenderer
  schema={schema}
  initialSnapshot={savedDraft}
  onSnapshotChange={(snapshot, change) => {
    if (change.dirty) queueLocalDraft(snapshot)
  }}
  onSubmit={uploadRecord}
/>
```

El snapshot mantiene los valores sin procesar, las entradas anidadas repetibles y las marcas de tiempo juntas:

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

`onSnapshotChange(snapshot, meta)` primero informa `{ kind: "seed", dirty: false }`; usuario posterior
los cambios usan `{ kind: "change", dirty }`.

## Guardar drafts o enviar registros

Establecer `primaryActionMode="save"` y proporcionar `onSave(snapshot, meta)` para un draft tolerante a la validación
`meta` contiene el resumen de validación actual y el estado sucio.

La acción de envío predeterminada valida primero. `onSubmit(record, meta)` recibe el registro estructurado
descrito en [Salida y registros](/es/core/output-records), más valores brutos, estado repetible,
timestamps, y el resumen de validación.

El binding no persiste ni sincroniza ninguna carga útil. Almacenar snapshots localmente, cargar
registros, reintentos de fallos y resolución de conflictos en la aplicación host.
