1. 弹窗销毁后再打开,原来的值仍存在,如何销毁弹窗内容?
解决:
加destroyOnClose
属性,关闭时销毁子元素。再次打开内容就清空了~
<Modal
title="新增对账流水"
visible={visible}
onOk={() => {
formRef.current.handleSubmit();
}}
onCancel={onClose}
okText="确认"
cancelText="取消"
width={800}
destroyOnClose // 关闭时销毁子元素
>
如果是使用antd中的form,上述方法不起效时,将form重置:
form.resetFields(); // hooks中
或者
this.props.form.resetFields(); // class中
如果有ref,可以这样:this.formRef.current.resetFields();
2. 在Select组件options中找到目标项的value。
通常下拉的结构是:
options = [ { id:1,name:'zhangsan' },...]
findName=(val,options)=>{
const targetOption = options.find(item=> item.value=>val);
return targetOption.name;
}
3.以前文章:React学习之antd中getFieldDecorator的使用
React学习之antd中getFieldDecorator的使用
4. Upload上传文件(重要)!
在Upload组件中经常用的就是受控的显示和上传。
我经常遇到的是这种情况:完全受控组件。
这样一定要记得:
- 设置
fileList
属性。它决定了文件列表默认显示什么,以及上传后显示什么! onChange
方法的其中两个重要且常用的参数:file、fileList。参数解释如下:
file:当前操作的文件对象。
{
uid: 'uid', // 文件唯一标识,建议设置为负数,防止和内部产生的 id 冲突
name: 'xx.png' // 文件名
status: 'done', // 状态有:uploading done error removed,被 beforeUpload 拦截的文件没有 status 属性
response: '{"status": "success"}', // 服务端响应内容
linkProps: '{"download": "image"}', // 下载链接额外的 HTML 属性
}
fileList: 当前的文件列表。
render() {
const props = {
action: 'https://xxxxx.com',
onChange: ({ file, fileList})=>{...},
multiple: true,
};
return (
<Upload {...props} fileList={this.state.fileList}>
<Button icon={<UploadOutlined />}>Upload</Button>
</Upload>
);
}
props
就是文件上传的各种属性,不熟的话要自己点链接看官网。
API参考:Ant Design 的 Upload
5. Tab页切换,数据没刷新?
场景:两个Tab页,每个里面都有表格,切换Tab,给Table赋值DataSource时,数据正确但页面未刷新。
我的Tab内容没有抽出组件,在一个文件中写的。
原因: React需要唯一识别符,没有唯一标识符。
解决:给每一个Table加key;将Tab的内容抽为子组件。
充电(补充知识):
React中Key的说明:https://zh-hans.reactjs.org/docs/lists-and-keys.html#keys
开发在继续,
持续更新中……
博主前端程序媛一枚,关注我,互相进步!