在一个单独的npm包中有一个导航和搜索组件。这些组件被导入到安装了react-router-dom的项目中。我想在导航组件中使用react-router-dom中的一个名为Link的组件,以及useLocation钩子等。目前,我必须将所有必要的参数从组件传递到项目,并在项目中路由它。
这些组件需要一个BrowserRouter来工作,在每个组件中放置一个BrowserRouter是一个糟糕的方法,因为它们开始倍增,而且不会将必要的数据传递给位于项目本身的主BrowserRouter。
在一个单独的npm包中有一个导航和搜索组件。这些组件被导入到安装了react-router-dom的项目中。我想在导航组件中使用react-router-dom中的一个名为Link的组件,以及useLocation钩子等。目前,我必须将所有必要的参数从组件传递到项目,并在项目中路由它。
这些组件需要一个BrowserRouter来工作,在每个组件中放置一个BrowserRouter是一个糟糕的方法,因为它们开始倍增,而且不会将必要的数据传递给位于项目本身的主BrowserRouter。
2条答案
按热度按时间li9yvcax1#
您需要在入口点
.js/.tsx
文件中添加BrowserRouter
。如果使用的是
npx create-react-app .
,则在index.js
中导入BrowserRouter
字符串
在
App
组件中,您需要使用<Routes>
和<Route>
。All Set!
rbl8hiat2#
将history作为prop传递给Navigation组件您可以将history对象作为prop从react-router-dom传递给Navigation组件。这样,您就可以在Navigation组件中使用Link组件和useLocation钩子,而不需要用另一个BrowserRouter Package 它。下面是一个例子:
字符串
在使用Navigation组件的主项目中,确保使用BrowserRouter Package 了整个应用程序(App.js
型