UNPKG

mp-colorui

Version:

MP ColorUI 是一款基于 Taro 框架并且联合 Color-UI CSS 库开发的多端 UI 组件库(支持小程序端和H5端)

43 lines 1.24 kB
import Nerv from "nervjs"; import Taro from "@tarojs/taro-h5"; import { View } from "@tarojs/components"; import { classNames } from "../../lib/index"; import defaultRules from "../../lib/rules"; import context from "./context"; const date = {}; export const FormContext = Taro.createContext(date); export default class ClForm extends Taro.Component { validate(fn) { let flag = true; const { model, rules } = this.props; const modelData = model || {}; const rulesData = rules || {}; const ruleKeys = Object.keys(rules || {}) || []; ruleKeys.forEach(key => { const ruleFunc = rulesData[key]; const value = modelData[key]; flag = flag && ruleFunc(defaultRules, value, () => {}); }); return fn(flag); } render() { const { model, rules } = this.props; context.provider = { model, rules }; return <View className={classNames(this.props.className)} style={Object.assign({}, this.props.style)}> <FormContext.Provider value={{ model, rules }}> {this.props.children} </FormContext.Provider> </View>; } } ClForm.contextType = FormContext; ClForm.defaultProps = { model: {}, rules: {} }; ClForm.options = { addGlobalClass: true };