场景描述:
如下图所示,当我点击某个盒子的时候,我需要得到该盒子的数据,
问题:当我第一次点击的时候得到了当前的数据值,但是在点击其他的盒子的时候数据form中的数据还是上次的数据,并未更新。刷新页面后 出现当前盒子的数据信息,然后再次失效
<Modal {...modalOpts} maskClosable={false}>
<Form layout="horizontal" hideRequiredMark>
<FormItem label="磁铁名称"
{getFieldDecorator('name', {
initialValue: item.name,
})(<Input/>)}
</FormItem>
</Form>
</Modal>
问题分析:在react中,当你点击弹出Modal组件后,formItem会得到一个initialValue ,但是这个值只会在组件挂在时候加载一次,不会更新。
解决方法:
在组件前边嵌套一个控制Modal可视化的参数 用&&链接,这样当组件再次 visible:true 时候 组件会重新挂载,重新挂载就会重新获取initialValue ,如此可实现信息更新效果。
{modalVisible && <Modal {...modalProps}/>}