Saltar al contenido principal

schema.Object

Define un mapeo de objeto plano cuyos valores deben normalizarse en Entities. Nota: el mismo comportamiento puede definirse con la sintaxis abreviada: { ... }

  • definition: obligatorio Una definición de las entidades anidadas dentro de este objeto. Por defecto es un objeto vacío. No necesitas definir ninguna clave de tu objeto aparte de las que contienen otras entidades. Todos los demás valores se copiarán a la salida normalizada.
consejo

Los Objects tienen miembros conocidos estáticamente. Para Objects sin límite (claves string arbitrarias), usa Values

Métodos de instancia​

  • define(definition): Al usarlo, la definition pasada se fusionará con la definición original pasada al constructor de Object. Este método suele ser útil para crear referencias circulares en el schema.

Uso​

Fixtures
GET /users
{"users":[{"id":"123","name":"Beth"}]}
▶UsersPage.tsx
import { Entity, RestEndpoint, schema } from '@data-client/rest';
import { useSuspense } from '@data-client/react';

class User extends Entity {
  id = '';
  name = '';
}
const getUsers = new RestEndpoint({
  path: '/users',
  schema: new schema.Object({ users: new schema.Array(User) }),
});
function UsersPage() {
  const { users } = useSuspense(getUsers);
  return (
    <div>
      {users.map(user => (
        <div key={user.pk()}>{user.name}</div>
      ))}
    </div>
  );
}
render(<UsersPage />);
Resultado
Store▶