微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

React Konva 的 `use-image` 库抛出 TypeScript 错误

如何解决React Konva 的 `use-image` 库抛出 TypeScript 错误

完整的错误是:

TS2322:输入 '[HTMLImageElement |未定义,“加载” | “加载” | “失败”]' 不能分配给类型 'HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement |图像位图 |离屏画布 |不明确的'。 输入 '[HTMLImageElement |未定义,“加载” | “加载” | “失败”]' 不能分配到类型 'OffscreenCanvas'。

我正在尝试使用 https://github.com/konvajs/use-image,例如:

const win = {
  width: window.innerWidth,height: window.innerHeight,}

const App = () => {
  const image = useImage('https://konvajs.org/assets/lion.png')

  return (
    <Stage width={win.width} height={win.height}>
      <Layer>
        <Image image={image} />
      </Layer>
    </Stage>
  )
}

我尝试制作一个 declaration.d.ts 文件,例如:

declare module 'use-image' {
  function useImage(
    url: string,crossOrigin?: string
  ): [
    (
      | HTMLImageElement
      | SVGImageElement
      | HTMLVideoElement
      | HTMLCanvasElement
      | ImageBitmap
      | OffscreenCanvas
      | undefined
    ),'loaded' | 'loading' | 'Failed'
  ]

  export default useImage
}

但它也不起作用。我该如何解决这个问题?

解决方法

您没有使用正确的语法应该是 const [image] 而不是 const image

,

这对我来说是一个愚蠢的错误。它应该是 [image] 而不是 image

const [image] = useImage('https://konvajs.org/assets/lion.png')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。