我正在尝试获取此堆栈跟踪中的File
值
但是我在调用它时却得到了一个未定义
console.log(e.target.File);
或
console.log(e.target)
我将如何访问文件值?
handleUpload = (e) => {
const data = new FormData()
console.log(e.target);
// data.append('file', e.target.files[0])
// data.append('name', 'some value user types')
// data.append('description', 'some value user types')
// Axios.post('/images/upload', data).then((response) => {
// console.log(response);
debugger;
// this.setState({
// imageUrl: response.data.fileUrl
// })
render(){
return(
.......
<ImageUploader
withIcon={true}
withPreview={true}
buttonText='Upload an image'
imgExtension={['.jpg', '.gif', '.png', '.gif']}
onChange={this.handleUpload}
maxFileSize={5242880}
/>
}
答案 0 :(得分:2)
您似乎正在使用React ImageUploader
组件,该组件已经在处理从事件中提取文件的问题。 e
中的handleUpload
不是事件,而是提取的文件列表。您应该直接使用此文件列表。
如果您想更好地理解,可以查看ImageUploader
源,以了解其处理方式,但是可以通过e[0]
访问文件(您可能希望重命名{{1 }}到e
之类的内容中来)。
答案 1 :(得分:1)
我们不知道ImageUploader
的实现,但是从屏幕快照中可以看出,它使用文件数组调用了onChange
方法。这样您就可以像这样访问它们:
handleImagesChange = images => {
const firstImage = images[0];
console.log(firstImage.name);
this.setState({ images });
}
handleSubmit = () => {
Axios.post('some/url', this.state.images)
.then(console.log)
}