【发布时间】:2019-05-08 16:33:15
【问题描述】:
我使用库react-use-modal,并且
我正在尝试在 handleClick 函数中读取 confirmLoading 的更新值。
handleClick 确实读取了confirmLoading 在执行const [ confirmLoading, setConfirmLoading ] = useState(false) 时定义的第一个值,但当我在handleOk 中setConfirmLoading 时永远不会更新。
我不明白我做错了什么
import { Button, Modal as ModalAntd } from 'antd'
import { useModal } from 'react-use-modal'
export interface ModalFormProps {
form: React.ReactElement
}
export const ModalForm: React.FC = () => {
const [ confirmLoading, setConfirmLoading ] = useState(false)
const { showModal, closeModal } = useModal()
const handleOk = () => {
setConfirmLoading(true)
setTimeout(() => {
setConfirmLoading(false)
closeModal()
}, 1000)
}
const handleCancel = () => {
closeModal()
}
const handleClick = () => {
showModal(({ show }) => (
<ModalAntd
onCancel={handleCancel}
onOk={handleOk}
title='Title'
visible={show}
>
// the value of confirmLoading is always the one defined
// with useState at the beginning of the file.
<p>{confirmLoading ? 'yes' : 'no'}</p>
</ModalAntd>
))
}
return (
<div>
<Button onClick={handleClick}>
Open Modal
</Button>
</div>
)
}
【问题讨论】:
标签: reactjs modal-dialog antd react-hooks