ReadyNative

No forms library

The "No forms library" option of the ReadyNative Expo template: controlled @/ui Inputs with useState.

Expo Go: yes

Runs in Expo Go; no dev build needed for this module.

Nothing is installed - you write controlled Inputs from @/components/ui with useState and validate by hand. I'd keep this while your forms are one or two fields (a search box, a rename dialog); it's one less dependency and the kit's Input already renders labels and errors. With --with-examples, /examples/form shows the core "Module not installed" screen.

Setup

bun run setup --forms none

That's it - there's nothing to configure.

Usage

import { useState } from "react";
import { Button, Input } from "@/components/ui";

const [email, setEmail] = useState("");
const error = email.includes("@") ? undefined : "Enter a valid email";

<Input label="Email" value={email} onChangeText={setEmail} error={error} />;
<Button onPress={submit}>Save</Button>;

Gotchas

  • Once a form grows past a couple of fields, or you want a schema, run bun run setup --forms react-hook-form. It adds a Field component that binds the same Input through Controller.

Reference

Everything below is generated from modules/forms/none/module.json - the same file bun run setup reads, so it is what actually lands in your repo.

Install

bun run setup --forms none

Module id: forms/none.

On this page

Get ReadyNative