{/*修改弹框*/}
<Modal
visible={this.state.upvisible}
title="添加任务信息"
footer={null}
onCancel={this.hideModal}
>
<Form
style={{marginLeft:'-12px'}}
labelCol={{ span: 6 }}
wrapperCol={{ span: 14 }}
layout="horizontal"
onFinish={this.onFinish}
initialValues={{
task_name:this.state.task_name,
task_type:this.state.task_type,
task_reward:this.state.task_reward,
task_time:this.state. task_time,
task_rules:this.state.task_rules,
}}
>
<Form.Item name='task_name' label="任务名称">
<Input placeholder="large size" />
</Form.Item>
<Form.Item name='task_type' label="Select">
<Select>
<Option value="新手任务" >新手任务</Option>
<Option value="日常任务" >日常任务</Option>
<Option value="活动任务" >活动任务</Option>
</Select>
</Form.Item>
<Form.Item name='task_reward' label="任务奖励">
<Input placeholder="large size" />
</Form.Item>
<Form.Item name='task_time' label="有效期">
<RangePicker
locale={locale}/>
</Form.Item>
<Form.Item name='task_rules' label="任务规则">
<TextArea
placeholder="任务规则"
autoSize={{ minRows: 3, maxRows: 5 }}
/>
</Form.Item>
<Form.Item style={{margin:'20px 0 0 120px '}} >
<Button key="back" onClick={this.handleCancel}>
取消
</Button>
<Button key="submit" type="primary" htmlType="submit" onClick={this.handleOk}>
提交
</Button>
</Form.Item>
</Form>
</Modal>
constructor(prors){
super(prors)
this.state={
upvisible: false,
task_no:0,
task_name:'',
task_type:'',
task_reward:'',
task_time:[moment('', dateFormat) ,moment('', dateFormat)] ,
task_rules:'',
task_isup:0,
}
}
弹框显示
showModal = () => {
this.setState({
upvisible: true,
});
};
hideModal = () => {
this.setState({
upvisible: false,
});
};
// 点击确认
handleOk = () => {
this.setState({
upvisible: false,
});
};
// 点击取消
handleCancel = ()=> {
this.setState({
upvisible: false,
});
};
// 编辑
update(text,record,index){
this.setState({
upvisible: true,
task_no:record.task_no,
task_name:record.task_name,
task_type:record.task_type,
task_reward:record. task_reward,
task_time:[moment(record.task_starttime, dateFormat) ,moment(record.task_endtime, dateFormat)] ,
task_rules:record. task_rules,
task_isup:record.task_isup,
});
}
// 获取编辑表单数据并发起请求
onFinish = values => {
axios.post(api.task.updata,{
task_no: this.state.task_no,
task_name: values.task_name,
task_type:values. task_type,
task_reward:values.task_reward,
task_isup:this.state.task_isup,
task_starttime:values.task_time[0]._i,
task_endtime:values.task_time[1]._i,
task_rules:values.task_name
}).then((res)=>{
if (res.data.code==200){
this.success(res.data.msg)
}
}).catch((err)=>{
console.log(err)
})
}
上述写法会出现Form 的值不会动态改变
解决方法:
Modal窗口我们都有应用一个变量Visible来控制是否显示, 我们只要利用这个值得变化就可以实现Modal组件的重新挂载了。
但是要在把值设置完成后再改变visible的值为true
{
Visible && <Modal ....../>
}
// 编辑
update(text,record,index){
new Promise((resolve)=>{
this.setState({
upvisible: true,
task_no:record.task_no,
task_name:record.task_name,
task_type:record.task_type,
task_reward:record. task_reward,
task_time:[moment(record.task_starttime, dateFormat) ,moment(record.task_endtime, dateFormat)] ,
task_rules:record. task_rules,
task_isup:record.task_isup,
});
resolve()
}).then(()=>{
this.setState({
istrue:true
})
})
}