import React, { useState, useEffect } from 'react' import PropTypes from 'prop-types'; import { Modal, Input, Row, Col } from 'antd'; const { Search } = Input; const RoadModal = props => { const { isVisible, onSubmit, onCancel, roads } = props; const [roadName, setRoadName] = useState(''); const [isRepeated, setIsRepeated] = useState(true); let timer = null; useEffect(() => { if (timer) clearTimeout(timer) else { timer = setTimeout(() => { if (roads.some(item => item.roadName == roadName)) { setIsRepeated(true) } else { setIsRepeated(false); } }, 500); } }, [roadName]); useEffect(() => { if (!isVisible) { setRoadName('') setIsRepeated(false) } return () => { setRoadName('') } }, [isVisible]) const onInputText = (e) => { const value = e.target.value; setRoadName(value); } const onConfirm = () => { if (!isRepeated) if (roadName && roadName.trim() != '') { onSubmit(roadName) } } return ( 请输入道路名称: { isRepeated ? 道路名称重复 : '' } ) } RoadModal.propTypes = {} export default RoadModal