所以有人告诉我,由于一些技术问题,你不能将 react-router-dom 与 react-three-fiber 一起使用,因为 react-router 无法访问画布内的提供程序。好吧,我尝试在Link
画布之外放置一个标签,当元素被点击到另一个页面时它会重定向,但显然这适用于所有元素,而不是我想要的特定元素。我已经看到使用门户或转发画布的示例,但恐怕这对我来说真的很困惑,我不知道如何应用它。
我想知道这是否可以通过传递道具来实现。例如,而不是使用<Link to = "/Page2">
它<Link to = "{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>
</>
);
}
问题是当我应用它时,什么也没有发生,我不知道为什么,我的语法错了吗?这是我在沙盒中的主要代码。一切都在 Page1.js 中,但由于它的数量,它有点令人困惑。