ant design组件库在React中的使用方法和问题总结

本文介绍了Ant Design在React开发中的实用技巧,包括Modal设置`destroyOnClose`以销毁内容、Form重置方法、Select组件查找目标选项值以及Upload组件的受控上传方式,详细阐述了`fileList`和`onChange`参数的使用,并提醒注意React中Key的重要性。同时提供了Tab页数据刷新问题的解决方案,强调了添加唯一标识符和拆分组件的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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组件中经常用的就是受控的显示和上传。
我经常遇到的是这种情况:完全受控组件。
这样一定要记得:

  1. 设置fileList属性。它决定了文件列表默认显示什么,以及上传后显示什么!
  2. 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>
    );
  }

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

开发在继续,
持续更新中……

博主前端程序媛一枚,关注我,互相进步!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清颖~

您的鼓励让我们一起进步,加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值