reactjs - React Hooks:状态落后了一步
问题描述
我有一个在点击事件时打开的模式。它获取事件数据(日期和时间字符串)并将其显示在模式中。问题是我的状态总是落后一步。模态显示的内容始终处于以前的状态。当我关闭模式并重新打开它时,它会呈现内容,但它是上一个事件。如何解决这个问题?我使用反应钩子错了吗?我不能发布整个代码,因为它非常大,所以我只是发布我使用钩子的部分,如果您需要更多信息,请告诉我,我会提供。
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>
解决方案
推荐阅读
- javascript - 事件不向控制器触发视图并且不在 mvc 中的控制器中传递值
- scala - Scala 的@transient 有错误吗?
- swift - 如何在某些特定条件下使用 swift 在 nscollectionview 中禁用滚动
- operators - 了解余数运算符
- java - WildFly 中的 Apache Ignite 数据源
- java - 如何更改 getSystemJavaCompiler 的类加载器
- c# - 如何检查电报用户是否是机器人而不是用户?
- c# - EntityFramework6 - 错误 42703:列 Extent1... 未找到
- android - Android Transformations.switchMap 实现
- angular - 如何从 Angular 6 中的单个属性而不是整个组件中分离更改检测?