define interface:antd
interface ILoginState {
imageId: string;
imageSrc: string;
username: string;
password: string;
verifyCode: string;
}
useState:this
const [loginData, setLoginData] = useState(loginState)
update imageId && imageSrc:spa
setLoginData({
...loginData,
imageId: res.data.id.
imageSrc: res.data.content
})
antd inputchange:code
onInputChange(e: FormEvent<HTMLInputElement>) { const inputName = e.currentTarget.id; const inputValue = e.currentTarget.value; setInputData({ [inputName]: inputValue } as {[key in keyof ILoginState]:ILoginState[key]}) }
antd form onsubmitorm
<Form onSubmit={handleSubmit.bind(this)}>
add window resizeLitenerblog
const [contentHeight, setHeight]=useState(INTIAL_HEIGHT) useEffect(()=>{ screenChange(); return () => removeListener()//回調銷燬 },[contentHeight]) const screenChange = () => { window.addEventListener("resize", handleResize) } const removeListener = () => { window.removeEventListener("resize", handleResize) } handleResize =(e)=> { setHeight(e.target.innerHeight-headerHeight-footerHeight) }