2017.11.7 ant design - upload 组件的使用, react 条件渲染以及 axios.all() 的使用
2024-08-24 04:00:58
一、主要任务:悉尼小程序管理后台,添加景点页面的开发
二、所遇问题及解决
1. 上传多个不同分类音频信息时,如中文音频和英文音频,要求音频不是放在一个数组中的,每个音频是一个独立的字段,此时:
<Upload
action="/hserve/v2/file/upload/" // 必选参数,上传的地址;
listType="picture" // 上传列表的内建样式,这个不是很明白 text、picture、picture-card 之间的区别,默认值为 text;
showUploadList={false} // 是否展示 updateList,默认值为 true;
accept="audio/*" // 接受上传的文件类型,audio/*、video/*、image/*
fileList={cnAudioFileList} // 已经上传的文件列表,这里的 cnAudioFileList 初始值是为空的,上传后通过 handleAudioChange 来设置 cnAudioFileList 的值;
onChange={this.handleAudioChange.bind(this, 'cn')} // 这里因为要分别上传中英文的音频,所以额外传了一个用以区分的参数;
>
handleAudioChange = (type, { file, fileList }) => { // file:当前操作的文件对象, fileList:当前的文件列表;(自定义传的参数需要放在默认参数的前面)
if (file.status === 'done') {
fileList[fileList.length - 1].url = file.response.path
let lastFile = fileList[fileList.length - 1]
if (type === 'cn') {
this.setState({
cnAudioFileList: fileList,
site: { ...this.state.site, cnAudio: lastFile.url }
})
} else {
this.setState({
enAudioFileList: fileList,
site: { ...this.state.site, enAudio: lastFile.url }
})
}
return
}
if (type === 'cn') {
this.setState({ cnAudioFileList: fileList })
} else {
this.setState({ enAudioFileList: fileList })
}
}
2. react 条件渲染,两种写法:
(1)let example = <Example {...props} />,再在 render 中引用 { example };
(2)直接在 render 中: { condition === value ? (<div>1</div>) : (<div>2</div>) };
3. 对于多个接口相同,参数不同的请求,使用 axios.all(),具体用法:
import axios from 'axios'
let promises = [];
promises.push(request1[params])
promises.push(request2[params])
axios.all(promises).then(res => {
console.log(res) // res 作为一个数组,每项对应每个请求
}).catch(() => { message.error('请求失败') })
如果确定有几个请求的话,可以分开返回参数,即 axios.all(promises).then(axios.spread(function(a, b) => {}))
最新文章
- 一.Timesten安装
- cloudera learning7:Hadoop资源管理
- webService访问加密-Soapheader
- Request和Response对象
- CentOS6.5中修改yum源
- jsoup_解析任意网站,做任意网站客户端
- [Java]利用栈判断括号是否完整配对
- hadoop配置及无法移动文件到hdfs故障解析
- 概念学习 - JNDI, JDBC, ODBC, DataSource
- JavaWeb-SQL-Servlet-JSP学做购物系统——日志一
- router-view在vue2.0中不显示,解决方法
- 在插件中得到,调用 插件的id
- NTP服务部署和测试
- php 编译安装 mysql.so
- WPF datagrid 设置表头线与颜色、透明度
- Django(命名URL和URL反向解析)
- 高速Android开发系列通信篇之EventBus
- DocX插件
- cordova/webapp/html5 app 用corsswalk替换内核,优化安卓webview
- centos7 lvs+keepalived nat模式