Skip to content

ariesjia/react-use-form

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2e1e5cd · Mar 5, 2024

History

51 Commits
Mar 5, 2019
Jul 17, 2019
Feb 19, 2019
Feb 19, 2019
Feb 19, 2019
May 19, 2019
Feb 10, 2019
May 7, 2019
May 19, 2019
Mar 5, 2024
May 7, 2019
May 7, 2019

Repository files navigation

rc-use-form

manage form state use React Hooks. https://ariesjia.github.io/react-use-form/

NPM Build Status

Install

// use yarn
yarn add rc-use-form
// use npm
npm install rc-use-form

Demo

simple

import useForm from 'rc-use-form';

const Demo = () => {
  const [form, field]  = useForm({
    name: '',
    password: ''
  })
  
  const handleSubmit = (event) => {
    event.preventDefault()
    console.log(form.value)
  }
  
  return (
    <div>
      <form onSubmit={handleSubmit}>
        <div>
          <label>username</label>
          <input type="text" {...field("name")}/>
        </div>
        <div>
          <label>password</label>
          <input type="password" {...field("password")} />
        </div>
        <button type='submit'>submit</button>
      </form>
    </div>
  )
}

validate

import useForm from 'rc-use-form';

const Demo = () => {
  const [form, field]  = useForm({
    name: '',
    password: ''
  })
  
  const handleSubmit = (event) => {
    event.preventDefault()
    form.validate((errors) => {
      if(!errors) {
        console.log(form.value)
        alert('submit')
      }
    })
  }
  
  return (
    <div>
      <form onSubmit={handleSubmit}>
        <div>
          <label>username</label>
          <input type="text" {...field("name", {
            rules: [{type: "string", required: true}]
          })}
          />
          {
            form.errors.name && <div>
                {form.errors.name[0].message}
            </div>
          }
        </div>
        <div>
          <label>password</label>
          <input type="password" {...field("password", {
            rules: [{type: "string", required: true}]
          })}
          />
          {
            form.errors.password && <div>
                {form.errors.password[0].message}
            </div>
          }
        </div>
        <button type='submit'>submit</button>
      </form>
    </div>
  )
}

form

  • value: The form data
  • touched: The field had been changed by user
  • errors: The form validate errors
  • validate: The form validate function
  • getValue: The form getValue function, always return current value

field

field(name, [options])
  • name: The field field (required).

Options