Javascript 如何在不卸载React JS中的前一个组件的情况下在单独的组件中打开路由?
我目前正在使用React JS和React router开发一个食谱网站 在主页中,我有一个卡片网格,每张卡片都是食谱的预览 每张卡都用Javascript 如何在不卸载React JS中的前一个组件的情况下在单独的组件中打开路由?,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我目前正在使用React JS和React router开发一个食谱网站 在主页中,我有一个卡片网格,每张卡片都是食谱的预览 每张卡都用标签包装。单击其中一张卡,我想打开另一个页面(由于react router,URL会发生变化,链接到特定路由的组件也会打开)。在这个新组件上,我展示了配方的所有细节 我的问题是: 当我在详细信息页面上并单击导航器的“previous”(上一页)按钮时,我的网格组件和所有配方都将再次装载。这是一个问题,因为: 我不想再拿所有的食谱了 在单击食谱之前,我将失去滚动
标签包装。单击其中一张卡,我想打开另一个页面(由于react router,URL会发生变化,链接到特定路由的组件也会打开)。在这个新组件上,我展示了配方的所有细节
我的问题是:
当我在详细信息页面上并单击导航器的“previous”(上一页)按钮时,我的网格组件和所有配方都将再次装载。这是一个问题,因为:
- 我不想再拿所有的食谱了
- 在单击食谱之前,我将失去滚动级别
return (
<ErrorBoundary>
<Suspense fallback={<LoadingPage />}>
<Switch>
<Route exact path="/">
<HomePage /> // recipes grid page
</Route>
<Route path="/recette/:id">
<RecipeDetailPage /> // recipe details page
</Route>
<Route path="/not-found">
<NotFoundPage />
</Route>
<Redirect to="/not-found" />
</Switch>
</Suspense>
</ErrorBoundary>
);
};
<Link className="RecipeCard__wrapper" to={`/recette/${recipe._id}`}>
// ... card datas
</Link>
返回(
//配方网格页面
//配方详细信息页面
);
};
我的配方卡组件(它们位于我的网格组件中,可单击):
return (
<ErrorBoundary>
<Suspense fallback={<LoadingPage />}>
<Switch>
<Route exact path="/">
<HomePage /> // recipes grid page
</Route>
<Route path="/recette/:id">
<RecipeDetailPage /> // recipe details page
</Route>
<Route path="/not-found">
<NotFoundPage />
</Route>
<Redirect to="/not-found" />
</Switch>
</Suspense>
</ErrorBoundary>
);
};
<Link className="RecipeCard__wrapper" to={`/recette/${recipe._id}`}>
// ... card datas
</Link>
// ... 卡片数据
我的食谱详细信息页面:
我在URL中检查配方的id,然后获取相应的配方。经典的反应成分,没什么特别的
谢谢 不要使用
exact
,它将不会卸载。