React Advanced Form
  • Introduction
  • General
    • Comparison
      • Compared to Formik
      • Compared to Final form
    • Migration guides
      • 1.4.x → 1.5.x
    • FAQ
  • Getting started
    • Installation
    • Creating fields
    • Creating form
    • Validation rules
    • Validation messages
    • Applying validation
    • Handle submit
  • Architecture
    • Argument properties
    • Referencing
    • Field lifecycle
    • Controlled fields
    • Reactive props
  • Validation
    • Getting started
    • Validation schema
      • Rule definition
      • Reactive rule
    • Validation messages
  • High-order components
    • createField
      • Options
      • Field presets
      • Exposed props
  • Components
    • FormProvider
    • Form
      • Props
        • innerRef
        • initialValues
        • action
        • rules
        • messages
      • Methods
        • setValues()
        • setErrors()
        • reset()
        • validate()
        • serialize()
        • submit()
      • Callbacks
        • onFirstChange
        • onReset
        • onInvalid
        • onSerialize
        • onSubmitStart
        • onSubmitted
        • onSubmitFailed
        • onSubmitEnd
    • Field.Group
    • Field
      • Props
        • rule
        • asyncRule
        • skip
      • Callbacks
        • onFocus
        • onChange
        • onBlur
  • Recipes
    • Generating a form
    • Utilizing functions
  • Developers
    • Contributing
Powered by GitBook
On this page
  • Specification
  • Definition
  • Parameters
  • Example
  • Regular expression
  • Resolver function
  • Reactive rule
  1. Components
  2. Field
  3. Props

rule

Specification

A synchronous rule applied to the field as the top priority validation. When the rule rejects, all the remaining validation chain is ignored.

Definition

type Rule = RegExp | (params) => boolean

Parameters

The following parameters are exposed to the rule when it is a function:

Parameter name

Type

Description

get

Function

value

any

The current value of the field.

fieldProps

Object

Props of the current field.

fields

Object

Map of all fields.

form

Object

A reference to the current Form

Example

Regular expression

import React from 'react'
import { Form } from 'react-advanced-form'
import { Input } from 'react-advanced-form-addons'

export default class Example extends React.Component {
  render() {
    return (
      <Form>
        <Input
          name="username"
          rule={/^\d+/} />
      </Form>
    )
  }
}

Resolver function

import React from 'react'
import { Form } from 'react-advanced-form'
import { Input } from 'react-advanced-form-addons'

export default class Example extends React.Component {
  validateUsername = ({ get, value, fieldProps, fields, form }) => {
    /* "username" is valid only when equals to "foo" */
    return value === 'foo'
  }
  
  render() {
    return (
      <Form>
        <Input
          name="username"
          rule={this.validateUsername} />
      </Form>
    )
  }
}

Reactive rule

import React from 'react'
import { Form } from 'react-advanced-form'
import { Input } from 'react-advanced-form-addons'

export default class Example extends React.Component {
  render() {
    return (
      <Form>
        <Input
          name="password"
          type="password"
          required />
        <Input
          name="confirmPassword"
          rule={({ get, value }) => {
            /* Valid only when equals to "password" field's value */
            return value === get(['password', 'value'])
          }}
          required />
      </Form>
    )
  }
}
PreviousPropsNextasyncRule

Last updated 6 years ago

getter function.

Read more about feature, it is a game-changer.

Reactive props
Reactive props