import { Icon, Input } from 'antd'; import React, { Component } from 'react'; import styles from './index.less'; interface EditableItemProps { onChange: (value?: string | string[] | number) => void; } interface EditableItemState { value?: string | string[] | number; editable: boolean; } export default class EditableItem extends Component { constructor(props) { super(props); this.state = { value: props.value, editable: false, }; } handleChange = e => { const { value } = e.target; this.setState({ value }); }; check = () => { this.setState({ editable: false }); const { value } = this.state; const { onChange } = this.props; if (onChange) { onChange(value); } }; edit = () => { this.setState({ editable: true }); }; render() { const { value, editable } = this.state; return (
{editable ? (
) : (
{value || ' '}
)}
); } }