Renders an element that shows an error message. The children will automatically display the error message defined in the store.

Code examples

const form = useFormStore({
email: "",
form.useValidate(() => {
if (! {
form.setError(, "Email is required!");
<Form store={form}>
<FormLabel name={}>Email</FormLabel>
<FormInput name={} />
<FormError name={} />

Required Props



Name of the field associated with this error. This can either be a string or a reference to a field name from the names object in the store, for type safety.

Code examples

<FormError name="password" />

Optional Props


((props: CollectionStoreItem) => CollectionStoreItem) | undefined

A memoized function that returns props to be passed with the item during its registration in the store.

Code examples

const getItem = useCallback((data) => ({, custom: true }), []);
<CollectionItem getItem={getItem} />


string | undefined

The unique ID of the item. This will be used to register the item in the store and for the element's id attribute. If not provided, a unique ID will be automatically generated.

Live examples


RenderProp<React.HTMLAttributes<any> & { ref?: React.Ref<any> | undefined; }> | React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined

Allows the component to be rendered as a different HTML element or React component. The value can be a React element or a function that takes in the original component props and gives back a React element with the props merged.

Check out the Composition guide for more details.


boolean | undefined = true

Whether the item should be registered as part of the collection.


FormStore<FormStoreValues> | undefined

Object returned by the useFormStore hook. If not provided, the closest Form or FormProvider components' context will be used.

Stay tuned

Join 1,000+ subscribers and receive monthly tips & updates on new Ariakit content.

No spam. Unsubscribe anytime. Read latest issue