Blog>
Snippets

Implementing Conditional Form Logic with TanStack Form

Illustrate how to implement conditional form fields or sections that display based on previous inputs or selections, using TanStack Form.
import { useForm } from '@tanstack/react-form';
import React from 'react';
Importing useForm hook from TanStack Form and React for creating functional component.
function ConditionalForm() {
  const {
    Form,
    values
  } = useForm({
    defaultValues: {
      showAdditionalFields: false
    }
  });
  return (
    <Form>
      {({ getInputProps }) => (
        <>
          <label>
            Show Additional Fields?
            <input type='checkbox' {...getInputProps({
              name: 'showAdditionalFields',
              type: 'checkbox'
            })} />
          </label>
          {values.showAdditionalFields && (
            <div>
              <label>
                Additional Info
                <input type='text' {...getInputProps({ name: 'additionalInfo' })} />
              </label>
            </div>
          )}
        </>
      )}
    </Form>
  );
}
Defines a functional component named ConditionalForm. It utilizes useForm to manage form state. A checkbox controls the visibility of additional form fields based on its state.
export default ConditionalForm;
Exports the ConditionalForm component for use in other parts of the application.