# redux-form/redux-form

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/redux-form-redux-form).**

12,490 stars · 1,618 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/redux-form/redux-form
- Homepage: https://redux-form.com
- awesome-repositories: https://awesome-repositories.com/repository/redux-form-redux-form.md

## Topics

`form` `form-validation` `forms` `react` `redux` `redux-form` `validation`

## Description

redux-form is a library for managing HTML form state and validation within a Redux store using React components. It functions as a state manager that synchronizes input values and interaction metadata to maintain a single source of truth in a global state container.

The project provides mechanisms for orchestrating dynamic arrays of input fields that can be added, removed, or reordered in real time. It also includes a system for splitting complex data entry into a sequence of pages to create multi-step form wizards.

Additional capabilities cover client-side data validation through synchronous or asynchronous logic, form state initialization from existing data, and the normalization of values before they are saved to the store. It utilizes a higher-order component pattern to inject state and event handlers from the global store into React components.

## Tags

### Software Engineering & Architecture

- [Redux Implementations](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations.md) — Manages HTML form state using a centralized Redux store with actions, reducers, and immutable state.
- [Form Validation Schemas](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-state-validation/form-validation-schemas.md) — Runs synchronous or asynchronous validation logic against the form state to generate field-level error messages.
- [State Selectors](https://awesome-repositories.com/f/software-engineering-architecture/redux-implementations/state-selectors.md) — Provides selector functions to efficiently extract specific field values or form status from the global Redux store.

### User Interface & Experience

- [Form and Input Management](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management.md) — Synchronizes HTML form values and interaction metadata within a Redux store to maintain a single source of truth.
- [Data-to-UI Bindings](https://awesome-repositories.com/f/user-interface-experience/data-to-ui-bindings.md) — Synchronizes JavaScript state object properties with visual HTML input elements in real-time. ([source](https://redux-form.com/8.2.2/docs/GettingStarted.md/))
- [React Form Libraries](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-handling/react-form-libraries.md) — Provides React-specific components and logic for managing form state and validation within a Redux store.
- [Form Input Validation](https://awesome-repositories.com/f/user-interface-experience/form-input-validation.md) — Verifies the correctness of user input during entry or upon submission using sync or async logic. ([source](https://redux-form.com/8.2.2/examples/))
- [Higher-Order Components](https://awesome-repositories.com/f/user-interface-experience/functional-components/higher-order-components.md) — Uses higher-order components to inject shared state and dispatch logic from the global store into input components.
- [Multi-Step Orchestrators](https://awesome-repositories.com/f/user-interface-experience/data-tables/data-entry-forms/complex-form-layouts/multi-step-orchestrators.md) — Manages state and field persistence across multi-page form sequences to guide users through a structured process. ([source](https://cdn.jsdelivr.net/gh/redux-form/redux-form@master/README.md))
- [Dynamic Block Input Connections](https://awesome-repositories.com/f/user-interface-experience/dynamic-input-creation/dynamic-block-input-connections.md) — Links individual inputs and dynamic field arrays to a shared state container for unified tracking. ([source](https://redux-form.com/8.2.2/docs/api/))
- [Dynamic Input Fields](https://awesome-repositories.com/f/user-interface-experience/dynamic-input-fields.md) — Allows users to programmatically add or remove multiple form fields at runtime.
- [Form Submission Management](https://awesome-repositories.com/f/user-interface-experience/form-submission-management.md) — Handles the form submission lifecycle by collecting current field values into a single object for a custom handler. ([source](https://redux-form.com/8.2.2/docs/GettingStarted.md/))
- [Form Wizards](https://awesome-repositories.com/f/user-interface-experience/form-wizards.md) — Provides components to break complex data entry into a sequence of guided, multi-step pages. ([source](https://redux-form.com/8.2.2/examples/))

### Web Development

- [Client-Side Input Validators](https://awesome-repositories.com/f/web-development/client-side-input-validators.md) — Implements synchronous and asynchronous client-side validation to verify input correctness before submission.
- [Form State Management](https://awesome-repositories.com/f/web-development/form-state-management.md) — Provides a comprehensive solution for tracking input values, validation status, and submission lifecycles. ([source](https://cdn.jsdelivr.net/gh/redux-form/redux-form@master/README.md))
- [Dynamic Field Arrays](https://awesome-repositories.com/f/web-development/dynamic-field-arrays.md) — Provides utilities for managing structural lists of inputs that can be added, removed, or reordered.
- [Value Initializers](https://awesome-repositories.com/f/web-development/form-field-state-management/value-initializers.md) — Populates input fields with existing data from a state store to facilitate editing of saved records.
- [Form Value Initialization](https://awesome-repositories.com/f/web-development/form-value-initialization.md) — Provides strategies for initializing form fields with synchronous or asynchronous data retrieved from the store. ([source](https://redux-form.com/8.2.2/examples/))
