import React, { useCallback, useEffect, useState } from 'react'; import styles from './index.less'; import { Input, message } from 'antd'; import classnames from 'classnames'; interface IProps { name: string; onChange: (newName: string) => void; className?: string; } const EditName = ({ name, onChange, className }: IProps) => { const [isEdit, setIsEdit] = useState(false); const [cacheName, setCacheName] = useState(''); useEffect(() => { setCacheName(name); }, [name, isEdit]); const onSubmit = useCallback(() => { if (!cacheName) { message.warn('请输入名称'); return; } if (cacheName === name) { message.warn('名称未更改'); } else { onChange(cacheName); message.success('名称修改成功'); } setIsEdit(false); }, [cacheName, name, onChange]); return (
{isEdit ? ( setCacheName(e.target.value)} onBlur={() => setIsEdit(false)} placeholder="请输入名称" suffix={} /> ) : ( <>
{name}
{ e.stopPropagation(); setIsEdit(true); }} /> )}
); }; export default EditName;