跳到主要内容

schema.Object

定义一个普通对象映射,其中的值需要被规范化为 Entity。注意:同样的行为也可以用简写语法定义:{ ... }

  • definition: 必填 此对象中嵌套 Entity 的定义。默认为空对象。除了存放其他 Entity 的键之外,你_无需_在对象中定义任何键。其他所有值都会被复制到规范化后的输出中。
提示

Objects 的成员是静态已知的。对于不限定成员的对象(任意 string 键),请使用 Values

实例方法​

  • define(definition): 调用时,传入的 definition 会与传给 Object 构造函数的原始定义合并。这个方法通常用于在 schema 中创建循环引用。

用法​

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 />);
结果
Store▶