据我所知,由于react-router无法访问画布中的provider,因此不能在react-three-fiber中使用react-router-dom。我试图将标签放在画布外部,虽然它可以在元素被点击时重定向到另一页,但显然这适用于所有元素而不是特定的元素,这不是我想要的。我看过使用 portals 或 forwarding canvases 的示例,但我很困惑,不知道如何应用它。
我想知道是否可以通过传递属性来实现这一点。例如,不使用
我想知道是否可以通过传递属性来实现这一点。例如,不使用
<Link to = "/Page2">
,而是<Link to = "{link}">
,然后在组件内定义link。例如:<Cube link = "/Page2">
。以下是我代码的简化版本:export default function Page1({ link }) {
return (
<>
<Link to = "/page2">
<Canvas>
<ambientLight />
<pointLight position={[10, 10, 10]} />
<Suspense fallback={<Fallback />}>
<Cube position={[-1.2, 0, 0]} time={1000} link="/Page2" />
</Suspense>
</Canvas>
</Link>
</>
);
}
我尝试应用这个代码,但没有效果,我不知道为什么,我的语法有误吗? 这是我在sandbox中的主要代码。所有内容都在Page1.js文件中,但由于内容很多,有点令人困惑。