schema.Object
Define a plain object mapping that has values needing to be normalized into Entities. Note: The same behavior can be defined with shorthand syntax: { ... }
definition
: required A definition of the nested entities found within this object. Defaults to empty object. You do not need to define any keys in your object other than those that hold other entities. All other values will be copied to the normalized output.
tip
Objects
have statically known members. For unbounded Objects (arbitrary string
keys), use schema.Values
Instance Methods
define(definition)
: When used, thedefinition
passed in will be merged with the original definition passed to theObject
constructor. This method tends to be useful for creating circular references in schema.
Usage
Fixtures
GET /users
{"users":[{"id":"123","name":"Beth"}]}
▶UsersPage.tsx
class User extends Entity { id = ''; name = ''; pk() { return this.id; } } 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 />);
🔴 Live Preview
Store▶