mp-colorui
Version:
MP ColorUI 是一款基于 Taro 框架并且联合 Color-UI CSS 库开发的多端 UI 组件库(支持小程序端和H5端)
43 lines • 1.24 kB
JavaScript
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
};