【发布时间】:2022-12-13 04:16:29
【问题描述】:
目前我有一个包含多个部分的登录页面,它是使用 Remix.run 构建的。这些部分是同一 url 的一部分,它们在同一页面中垂直并排显示。
我的问题是页面加载持续了一段时间,因为在加载程序中完成了多个请求。每个部分需要来自服务器的不同信息,但所有部分的所有请求都在同一个加载程序中等待。
我可以为每个部分处理一个装载机吗?所以整个页面不会等待所有请求完成,但每个部分都可以等待自己的数据
我已经尝试将每个部分作为路线处理
> routes
> my-page.tsx
> my page
> section-1.tsx
> section-2.tsx
然后我尝试为每个部分添加一个加载器,并在 my-page.tsx 中调用这些部分
我的页面.tsx
const MyPage = (): React.ReactElement => (
<main>
<section>
<Section1 />
</section>
<section>
<Section2 />
</section>
</main>
)
export default MyPage;
但我得到下一个错误
TypeError: Cannot destructure property 'myData' of '(0 , import_react7.useLoaderData)(...)' as it is undefined.
似乎 Section1 组件试图从 MyPage 加载器获取数据,而不是从 Section1 加载器本身获取数据。
如果我在 MyPage 中使用 <Outlet /> 组件,如果我通过 URL 访问它们,第 1 节和第 2 节加载器就会工作
localhost:3000/my-page/section-1
localhost:3000/my-page/section-2
但我不希望这些部分是嵌套路线,我希望它们在我的页面中。
如果有人可以帮助我,我将不胜感激。谢谢!
【问题讨论】:
标签: reactjs routes remix nested-routes remix.run