Pular para o conteúdo principal

schema.Object

Define um mapeamento de objeto simples cujos valores precisam ser normalizados em Entities. Nota: o mesmo comportamento pode ser definido com a sintaxe abreviada: { ... }

  • definition: obrigatório Uma definição das entities aninhadas encontradas dentro deste objeto. O padrão é um objeto vazio. Você não precisa definir nenhuma chave no seu objeto além daquelas que contêm outras entities. Todos os outros valores serão copiados para a saída normalizada.
dica

Objects têm membros conhecidos estaticamente. Para Objects sem limite definido (chaves string arbitrárias), use Values

Métodos de instância​

  • define(definition): Quando usado, a definition informada será mesclada com a definição original passada ao construtor de Object. Este método costuma ser útil para criar referências circulares no 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▶