javascript - ReactJS:未知类型的参数不可分配给来自文件读取器的 SetStateAction<string> 类型的参数

标签 javascript reactjs typescript react-hooks filereader

我想知道为什么我的代码无法工作并导致我出现此错误 Argument of type 'unknown' is not assignable to parameter of type 'SetStateAction<string>'. Type 'unknown' is not assignable to type '(prevState: string) => string'.ts(2345) .

此错误来自此代码 setBaseImage(base64);这个函数的作用:

    const uploadImage = async (e: any) => {
    const file = e.target.files[0];
    const base64 = await convertBase64(file);
    setBaseImage(base64);
  };

当前代码:

    const [baseImage, setBaseImage] = useState("");
const convertBase64 = (file: any) => {
    return new Promise((resolve, reject) => {
      const fileReader = new FileReader();
      fileReader.readAsDataURL(file);

      fileReader.onload = () => {
        resolve(fileReader.result);
      };

      fileReader.onerror = (error) => {
        reject(error);
      };
    });
  };

我只是按照这个教程source of the code

最佳答案

已经通过更新这行代码解决了问题:

setBaseImage(String(base64));

关于javascript - ReactJS:未知类型的参数不可分配给来自文件读取器的 SetStateAction<string> 类型的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70671307/

相关文章:

javascript - React.js - 实现组件排序

javascript - NodeJS - 如何使 res.render() 在函数之后运行而不是异步运行

reactjs - 记住 React 中的所有内容是一种不好的做法吗?

javascript - 如何干净地处理 nextjs getStaticProps 中的错误

javascript - 编译失败 : Parsing error: Unexpected token, 预期 ";"

typescript - 找不到模块 'module-name' 的声明文件。 '/path/to/module-name.js' 隐式具有 'any' 类型

http - 在 Angular2 中同时获取多个 HTTP 资源

javascript - 改变字母颜色的循环

javascript - Angular 8 使用 NgRx 从 http 设置状态

angular - 为什么 rxjs 的 mergeMap 将数组变成单独的对象