【发布时间】:2021-09-27 01:21:40
【问题描述】:
我有一个在点击事件时打开的模式。它获取事件数据(日期和时间字符串)并将其显示在模式中。问题是我的状态总是落后一步。模态显示的内容始终处于以前的状态。当我关闭模式并重新打开它时,它会呈现内容,但它是上一个事件。如何解决这个问题?我使用反应钩子错了吗?我无法发布整个代码,因为它非常大,所以我只发布我使用钩子的部分,如果您需要更多信息,请告诉我,我会提供。
const [isModalVisible, setIsModalVisible] = useState(false)
const [modelContent, setModalContent] = useState('')
const [modalTitle, setModalTitle] = useState('')
const handleEventAdd = (e) => {
form.resetFields()
setModalTitle('Add an Event')
const event = _.cloneDeep(e)
form.setFieldsValue({
datePicker: dateString,
timeRangePicker: [dateString, eventEnd.date],
})
}
const content = () => (
<div>
<Form
form={form}
initialValues={{
datePicker: moment(e.start),
timeRangePicker: [moment(e.start), moment(e.end)],
}}
>
<Form.Item name="datePicker" label="Current Event Date">
<DatePicker
className="w-100"
format={preferredDateFormat}
onChange={setValueDate}
/>
</Form.Item>
<Form.Item>
<Button
onClick={() => {
form
.validateFields()
.then((values) => {
form.resetFields()
})
}}
>
Add Event
</Button>
</Form.Item>
</Form>
</div>
)
setModalContent(content)
setIsModalVisible(true)
}
const handleModalClose = () => {
setIsModalVisible(false)
form.resetFields()
setModalContent('')
}
更新:: 我的返回函数包括,
<Modal visible={isModalVisible} footer={null} onCancel={handleModalClose} title={modalTitle}>
{modelContent}
</Modal>
【问题讨论】:
标签: reactjs react-hooks