问题描述:
在公司做项目的时候,有一个关于表格中的编辑需求,我在弹框中用antd的表单组件,点开时,默认要显示目前行的相关数据。但是表单组件的initialValue只会渲染一次,这就导致我第二次点击编辑的时候还是第一次的数据。
代码如下:
<Modal
title={modelTitle}
centered
visible={this.state.modal2Visible}
onOk={() => this.addSubmit()}
onCancel={() => this.setState({modal2Visible: false})}
>
<Form
ref={this.formRef}
name="basic"
labelCol={{ span: 8 }}
wrapperCol={{ span: 16 }}
onFinish={this.onFinish}
onFinishFailed={this.onFinishFailed}
>
<Form.Item
label="业务名称"
name="business_name"
initialValue={this.state.editNodeInf.business_name}
rules={[{ required: true, message: 'Please input business_name!' }]}
>
<Input />
</Form.Item>
</Form>
</Modal>
解决方案:
给弹框增加 destroyOnClose={true} ,表示每次退出都销毁数据,第二次打开编辑的时候就可以使用initialValue重新初始化form组件的数据