【发布时间】:2021-09-19 22:39:56
【问题描述】:
这个例子运行良好,但类型还不能很好地编译它。
我有以下:
function SpotlightElement(props: JSX.IntrinsicElements['spotLight']) {
return (
<group ref={group}>
<SpotLight ref={**set**} />
</group>
)
}
export default function MovingSpot() {
const [depthBuffer, setDepth] = useState()
return (
<>
<DepthBuffer ref={setDepth} size={512} />
<SpotlightElement **depthBuffer**={depthBuffer} />
</>
)
}
这是我的疑问...如何让 typescript 理解 SpotLight 组件的 ref 是从 set 函数中检索的?截至目前,它假设是带来组件本身而不是配置它的功能:类型'Dispatch'不可分配给类型'Ref |未定义'。
另外,如果 SpotLightElement 函数中的 props 属性被声明为来自 'group' 的 JSX.IntrinsicElements ,这将是正确的类型,因为现在 depthBuffer 属性显然没有存在于三个types.d.ts中定义的spotLight props中:
类型“IntrinsicAttributes & Omit
任何帮助将不胜感激。谢谢!!!
【问题讨论】:
-
您能创建一个沙盒来展示您的问题吗?
-
:THREE.SpotLight?
标签: typescript three.js react-three-fiber