# react-validate-framework **Repository Path**: haiboi/react-validate-framework ## Basic Information - **Project Name**: react-validate-framework - **Description**: 一个轻量、简单、易用的 React 表单验证组件 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: https://minjieliu.github.io/react-validate-framework/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 11 - **Created**: 2019-11-14 - **Last Updated**: 2022-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # react-validate-framework A lightweight and extensible React validation component [](https://www.npmjs.com/package/react-validate-framework) [](https://travis-ci.org/MinJieLiu/react-validate-framework) [](https://coveralls.io/github/MinJieLiu/react-validate-framework?branch=master) [](https://github.com/MinJieLiu/react-validate-framework) [中文 README](README-zh_CN.md) Demo: [https://minjieliu.github.io/react-validate-framework](https://minjieliu.github.io/react-validate-framework) You can check out the code to see examples. ## How to use? npm i react-validate-framework --save Import: ```js import formConnect, { Checkbox, Radio, Select, Text, Textarea, Message, } from 'react-validate-framework'; ``` Rules and messages like this: ```js const schemas = { email: { rules: 'required | isEmail | maxLength(32) | validateFromServer', messages: 'Can not be empty! | Please enter a valid email address. | Can not exceed {{param}} characters. | | The email already exists.', }, hobby: { rules: 'requiredField(phone) | selectLimit(2)', messages: 'email and hobby at least one entry! | Select at least {{param}}.', }, }; const methods = { selectLimit(field, param) { if (Array.isArray(field.value)) { return field.value.length >= param; } return false; }, requiredField(field, param) { const otherField = this.fields[param]; return this.required(field) || (otherField.result && this.required(otherField)); }, async validateFromServer(field, param) { return await doServerAPI(); }, }; ``` The BasicForm like this: ```js @formConnect(schemas, methods) export default class BasicForm extends React.Component { static propTypes = { formControl: PropTypes.object, }; constructor(props) { super(props); props.formControl.init({ email: '', phone: '', }, { static: 'form-control', success: 'valid-success', error: 'valid-error', }); } handleSubmit = async () => { const { formControl } = this.props; if (await formControl.validate()) { // Submit. } }; render() { return (