Reactjs 如何知道是否存在特定的父组件?

Reactjs 如何知道是否存在特定的父组件?,reactjs,react-router-dom,Reactjs,React Router Dom,所以我有一个依赖于BrowserRouter上下文的组件要挂接 我希望在MyRedirectComponent中包含BrowserRouter,这样我就不需要一直包装它了 constmyredirectcomponent=()=>{ const browserRouterParentExists=//我不知道 返回browserRouterParentExists( ) : ( ) } 正确地填充browserRouterParentExists是否可能?编写尝试访问父组件的条件逻辑在Re

所以我有一个依赖于BrowserRouter上下文的组件要挂接


我希望在MyRedirectComponent中包含
BrowserRouter
,这样我就不需要一直包装它了

constmyredirectcomponent=()=>{
const browserRouterParentExists=//我不知道
返回browserRouterParentExists(
) : (
)
}

正确地填充browserRouterParentExists是否可能?

编写尝试访问父组件的条件逻辑在React IMO中是一种反模式,我认为没有公共API可用于此目的

我没有得到您想要实现的目标,但是
BrowserRouter
被定义为

使用HTML5历史API(pushState、replaceState)的
和popstate事件),以保持UI与URL同步


考虑到其使用情况,大多数情况下,您只需要在应用程序中的顶级组件(如
app
)中安装一个
BrowserRouter
)。因此,用它包装一个组件并在整个应用程序中使用该组件是不合理的。如果您试图根据某些条件将用户重定向到另一个路由,则可以使用来自props、state、Context API或状态管理库的任何数据。例如Redux等,实现您的逻辑并将组件与条件逻辑一起呈现。

编写尝试访问父组件的条件逻辑在React IMO中是一种反模式,我认为没有公共API可用于此目的

我没有得到您想要实现的目标,但是
BrowserRouter
被定义为

使用HTML5历史API(pushState、replaceState)的
和popstate事件),以保持UI与URL同步


考虑到其使用情况,大多数情况下,您只需要在应用程序中的顶级组件(如
app
)中安装一个
BrowserRouter
)。因此,用它包装一个组件并在整个应用程序中使用该组件是不合理的。如果您试图根据某些条件将用户重定向到另一个路由,则可以使用来自props、state、Context API或状态管理库的任何数据。如Redux等,以实现您的逻辑并将组件与条件逻辑一起呈现。

您的最终目标是什么?同样,如果没有父子组件,也不会存在您的最终目标是什么?没有父-子组件也不存在