Reactjs 在追加数据时,Typescript给了我未定义的信息
我有一个国家:Reactjs 在追加数据时,Typescript给了我未定义的信息,reactjs,typescript,Reactjs,Typescript,我有一个国家: const [file, setFile] = React.useState() 这是我的状态: const fileselectedHandler = (event: any): void => { setFile((event.target.files[0])) } 我有一个上传图片的函数,每当我试图向FormData传递一个新数据时,就会出现以下错误: 类型为“undefined”的参数不能分配给类型为“string | Blob”的参数。T
const [file, setFile] = React.useState()
这是我的状态:
const fileselectedHandler = (event: any): void => {
setFile((event.target.files[0]))
}
我有一个上传图片的函数,每当我试图向FormData传递一个新数据时,就会出现以下错误:
类型为“undefined”的参数不能分配给类型为“string | Blob”的参数。TS2345
以下是我的函数本身:
const uploadPicture = (e:any) : void => {
e.preventDefault()
const data = new FormData()
data.append('avatar',file)
console.log('--------data', data);
currentUser.map((user:any)=>{
axios.post(`http://localhost:4001/upload/${user.id}`,data, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
.then((res) => {
window.location.reload(false);
console.log('--------res', res);
})
.catch((err)=>{
console.log('--------err', err);
})
})
}
请提供有关如何修复此问题的建议?在这种情况下,您需要通过创建Blob对象来上载它。我也有类似的问题,这样做对我很有效
const data = new FormData()
data.append('avatar',new Blob([file], { type: file.type }), file.name)
在这个场景中,您需要通过创建Blob对象来上传它。我也有类似的问题,这样做对我很有效
const data = new FormData()
data.append('avatar',new Blob([file], { type: file.type }), file.name)
另外,您的
React.useState()
缺少一个参数。我不确定这是否会中断任何内容,但您没有为函数提供默认值。此外,您的React.useState()
缺少一个参数。我不确定这是否会中断任何内容,但您没有为函数提供默认值。尝试data.append('avatar',文件为Blob)
。尝试data.append('avatar',文件为Blob)
。