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▶