神奇的代码技巧
const linkage = (key, defaultValue) => (path, value) => {
setFieldState(path, state=>{
state.value = value !== undefined ? value : defaultValue
})
}
FormPath.setIn(tree, path,value{})
setFieldState // 设置某一项Field的属性
setFormState // 设置表单的属性
新建一个Utill 便于设定反复的联动状态
// 新建联动函数 定义联动模型
const createLinkageUtils = () => {
const { setFieldState } = createFormActions();
const linkage = (key, defaultValue) => (path, value) =>
setFieldState(path, (state) => {
FormPath.setIn(state, key, value !== undefined ? value : defaultValue);
});
return {
loading: linkage('loading', true),
loaded: linkage('loaded', false),
init: linkage('init', true),
inited: linkage('inited', false),
prop: linkage('prop.enum', []),
value: linkage('value'),
};
};
通过x-rules
属性设定正则及其报错信息
x-rules={[
{
pattern: /^[a-zA-Z0-9]{8,}$/,
message: <DList />,
},
{ required: true, message: '必填' },
]}