mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-03-04 17:27:09 +00:00
73 lines
1.5 KiB
JavaScript
73 lines
1.5 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import Button from '../button';
|
|
import { func, obj } from '../util';
|
|
|
|
/**
|
|
* Form.Reset
|
|
* @description 继承 Button API
|
|
* @order 3
|
|
*/
|
|
class Reset extends React.Component {
|
|
static propTypes = {
|
|
/**
|
|
* 自定义重置的字段
|
|
*/
|
|
names: PropTypes.array,
|
|
/**
|
|
* 点击提交后触发
|
|
*/
|
|
onClick: PropTypes.func,
|
|
/**
|
|
* 返回默认值
|
|
*/
|
|
toDefault: PropTypes.bool,
|
|
/**
|
|
* 自定义 field (在 Form 内不需要设置)
|
|
*/
|
|
field: PropTypes.object,
|
|
children: PropTypes.node,
|
|
};
|
|
|
|
static defaultProps = {
|
|
onClick: func.noop,
|
|
};
|
|
|
|
static contextTypes = {
|
|
_formField: PropTypes.object,
|
|
};
|
|
|
|
handleClick = () => {
|
|
const { names, toDefault, onClick } = this.props;
|
|
const field = this.context._formField || this.props.field;
|
|
|
|
if (!field) {
|
|
onClick();
|
|
return;
|
|
}
|
|
|
|
if (toDefault) {
|
|
field.resetToDefault(names);
|
|
} else {
|
|
field.reset(names);
|
|
}
|
|
|
|
onClick();
|
|
};
|
|
|
|
render() {
|
|
const { children } = this.props;
|
|
|
|
return (
|
|
<Button
|
|
{...obj.pickOthers(Reset.propTypes, this.props)}
|
|
onClick={this.handleClick}
|
|
>
|
|
{children}
|
|
</Button>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default Reset;
|