当前位置: 首页 > news >正文

泰安公司网站开发新品牌推广策划方案

泰安公司网站开发,新品牌推广策划方案,商城网站建设运营方案,上海人事人才网最近的需求,两个下拉框是必填项,点击上传按钮,如果有下拉框没选要有提示,如图 如果直接使用antd的Upload组件,一点击文件选择的窗口就打开了,哪怕在Button里再加点击事件,也只是(几乎…

最近的需求,两个下拉框是必填项,点击上传按钮,如果有下拉框没选要有提示,如图

如果直接使用antd的Upload组件,一点击文件选择的窗口就打开了,哪怕在Button里再加点击事件,也只是(几乎)同时处理两个方法,beforeUpload更是不行,文件都选择完了才执行。

在网上查找,终于看到这位vue选手的一个思路,两个同位置同样式的按钮按某个state切换:

AntD框架上传文件前校验信息:选择文件前进行内容校验并提示

改成react写法,把除了文件以外的payload获取放到beforeUpload里

const [uploadData, setUpLoadData] = useState(null);
const [selectMonth, setSelectMonth] = useState(false);
const [selectaaa, setSelectaaa] = useState(false);const handleBeforeUpload = file => {if (!/.xls?$/.test(file.name) && !/.xlsx?$/.test(file.name)) {message.error('...');return false;}form.validateFields((err, fieldsValue) => {if (err) return;const month = moment(fieldsValue.month).format('YYYY-MM');setUpLoadData({...fieldsValue, month: month});});return true;
};

组件里加onChange监听:

<FormItem label="月份" {...formItemLayout}>  {getFieldDecorator('month', {rules: [{ required: true, message: '请选择月份' }],})(<MonthPicker onChange={value => value ? setSelectMonth(true) : setSelectMonth(false)}/>)}
</FormItem>

最后上传按钮那边做两个按钮,用最上面定义的两个state来确定展示哪个按钮(validate里调用form.validateFields方法做必填提示):

{selectDepartment && selectMonth ? (<Uploadaction={uploadUrl}data={uploadData}showUploadList={false}onChange={handleUpload}beforeUpload={handleBeforeUpload}withCredentialsheaders={}><Button type="primary" style={}><Icon type='cloud-upload' /> 上传数据 </Button></Upload>
) : (<Button type="primary" style={} onClick={()=>validate()}><Icon type='cloud-upload' /> 上传数据 </Button>                          )
}

就可以做到最开始提到的效果啦。

又看到一篇文章(https://zhuanlan.zhihu.com/p/590018131?utm_id=0),可以更优雅地监听form,不用再使用onChange方法和useState,改完发现自己项目antd版本太低了用不了,从antd@4.20.0 开始,antd Form 添加了一个新的 API ->Form.useWatch

const [form] = Form.useForm();
const aaa = Form.useWatch('aaa', form);
const month = Form.useWatch('month', form);

在form item标签里加上name属性:

<FormItem label="月份" {...formItemLayout} name='month'>

效果应该是一样的。

另外发现使用dataform格式post方法上传文件,其他数据参数不需要用new FormData()再append进去了,直接传字典就行。

http://www.ds6.com.cn/news/70025.html

相关文章:

  • 让人做网站需要准备什么条件企业网络营销
  • 怎么做qq刷赞网站seo关键词如何布局
  • 注册资金多少有什么区别汕头搜索引擎优化服务
  • 小学生简短小新闻十条东莞网站关键词优化排名
  • 制作旅游网站设计概述百度关键词搜索指数
  • 中国网站模板下载网站ip查询
  • 广州推广型网站建设品牌推广是做什么的
  • 企业微信官网厦门关键词排名seo
  • 推荐武汉网站建设南京seo关键词排名
  • 一流本科专业建设网站自助建站模板
  • 八方建设集团有限公司网站semester at sea
  • 视频教做家常菜的网站电商平台推广公司
  • 福建嘉瑞建设工程有限公司网站百度推广登陆
  • 哪里可以兼职答题重庆seo快速优化
  • 苏州做网站的企业百度应用搜索
  • 简单做动画的网站官网seo是什么意思
  • 厦门网站建设公司电话电商网络推广是什么
  • 泉做网站的公司网络流量统计工具
  • wordpress 后台登录不上同仁seo排名优化培训
  • 织梦iis7搭建网站十大免费域名
  • 网站和管理系统哪个更难做哪里可以学网络运营和推广
  • 网站后台无法修改信息刷僵尸粉网站推广
  • 公司做宣传网站发票可以抵扣不seod的中文意思
  • 网站的最近浏览 怎么做网络营销推广主要做什么
  • 基本的网站开发技术路线seo网站快速排名
  • 中国住房和城乡建设部网站广州google推广
  • 服务器 空间 虚拟主机 网站需要seo排名哪家有名
  • 深圳网站开发培训怎样做seo搜索引擎优化
  • 网站如何做的有气质推广普通话宣传标语
  • 政务中心网站建设方案本地免费发布信息网站