2020-03-31 13:47:59 +08:00

44 lines
1.2 KiB
JavaScript

import { useState, useMemo } from 'react';
import Field from '@alifd/field';
import { log } from '../util';
import { scrollToFirstError, cloneAndAddKey } from './utils';
class NextField extends Field {
static useField(options = {}) {
if (!useState || !useMemo) {
log.warning('need react version > 16.8.0');
return;
}
return this.getUseField({ useMemo, useState })(options);
}
constructor(com, options = {}) {
const newOptions = Object.assign({}, options, {
afterValidateRerender: scrollToFirstError,
processErrorMessage: cloneAndAddKey,
});
super(com, newOptions);
this.validate = this.validate.bind(this);
}
validate(ns, cb) {
this.validateCallback(ns, cb);
}
reset(ns, backToDefault = false) {
if (ns === true) {
log.deprecated('reset(true)', 'resetToDefault()', 'Field');
this.resetToDefault();
} else if (backToDefault === true) {
log.deprecated('reset(ns,true)', 'resetToDefault(ns)', 'Field');
this.resetToDefault(ns);
} else {
this._reset(ns, false);
}
}
}
export default NextField;