Javascript 导航栏导致其他组件未加载到React路由器中
我正在设置一个基本的导航栏,它只有一些按钮,没有任何复杂的日志或任何东西。当我把这个导航条放在交换机内部时,没有其他组件加载,这意味着我不能在某些组件之间包装导航条,当我把导航条放在交换机外部时,它就工作了,我可以只检查props.match.location等是否为“/”而不加载到主页上,所以我找到了一个解决方法,但是是什么导致了这个错误,我怀疑我的野性路线,但不是100%确定是什么。 我在哪里使用导航栏Javascript 导航栏导致其他组件未加载到React路由器中,javascript,node.js,reactjs,express,react-router,Javascript,Node.js,Reactjs,Express,React Router,我正在设置一个基本的导航栏,它只有一些按钮,没有任何复杂的日志或任何东西。当我把这个导航条放在交换机内部时,没有其他组件加载,这意味着我不能在某些组件之间包装导航条,当我把导航条放在交换机外部时,它就工作了,我可以只检查props.match.location等是否为“/”而不加载到主页上,所以我找到了一个解决方法,但是是什么导致了这个错误,我怀疑我的野性路线,但不是100%确定是什么。 我在哪里使用导航栏 const App = () => { return (
const App = () => {
return (
<div>
<Router>
<Switch>
<Route component={theNavbar} />
<Route exact path="/" component={Home} />
<Route exact path="/api/:city/electronics" component={Electronics} />
<Route exact path="/api/:city/labour" component={Labour} />
<Route exact path="/api/posts/item/:id" component={ItemDetails} />
<Route exact path="/create/:city/:category" component={CreatePost} />
</Switch>
</Router>
</div>
);
};
常量应用=()=>{
返回(
);
};
这是预期的行为。根据:
没有路径的路由始终匹配
因此,您的导航栏将始终在
中匹配,并且其他组件都不会呈现。这是预期的行为。根据:
没有路径的路由始终匹配
因此,您的导航栏将始终在
中匹配,而其他组件都不会呈现。这完全是预期的行为,是由几个因素造成的。第一个是开关
,第二个是nav的匹配任何路线
呈现第一个子
或与
地点
所有后续匹配都不会渲染
没有路径的路由始终匹配
此路线匹配所有位置,因此将始终匹配。在开关中列在第一位意味着它将始终呈现
始终呈现某些导航组件,同时仍与其他路由匹配的解决方案是将该组件移到交换机
之外,但仍在路由器
内。这是完全预期的行为,由两个因素引起。第一个是开关
,第二个是nav的匹配任何路线
呈现第一个子
或与
地点
所有后续匹配都不会渲染
没有路径的路由始终匹配
此路线匹配所有位置,因此将始终匹配。在开关中列在第一位意味着它将始终呈现
始终呈现某些导航组件,同时仍与其他路径匹配的解决方案是将该组件移到交换机
之外,但仍在路由器
内,这完全有意义,但如果我不想在主页中呈现它,最佳做法是什么?目前在导航栏上,我告诉它,“嘿,如果props.location.pathname是“/”,render null“似乎可以正常工作,这看起来像是一个“黑客”还是一个好的解决方案,类似于我在一家公司的生产应用程序中使用的标题组件。我们的header组件实际上根据路线呈现了几个不同的元素。这完全有道理,但是如果我不想在主页中呈现它,那么最好的做法是什么呢?目前在导航栏上,我告诉它,“嘿,如果props.location.pathname是“/”,render null“似乎可以正常工作,这看起来像是一个“黑客”还是一个好的解决方案,类似于我在一家公司的生产应用程序中使用的标题组件。我们的header组件实际上根据路线呈现了几个不同的元素。用噪音代替你的问题内容是不可接受的,尤其是在你收到并接受了答案之后。一旦在这里发布,根据本网站的服务条款,内容属于SO。有关更多信息,请参阅。我已回滚您的。用噪音代替你的问题内容是不可接受的,尤其是在你收到并接受了答案之后。一旦在这里发布,根据本网站的服务条款,内容属于SO。有关更多信息,请参阅。