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)