Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 导航栏导致其他组件未加载到React路由器中_Javascript_Node.js_Reactjs_Express_React Router - Fatal编程技术网

Javascript 导航栏导致其他组件未加载到React路由器中

Javascript 导航栏导致其他组件未加载到React路由器中,javascript,node.js,reactjs,express,react-router,Javascript,Node.js,Reactjs,Express,React Router,我正在设置一个基本的导航栏,它只有一些按钮,没有任何复杂的日志或任何东西。当我把这个导航条放在交换机内部时,没有其他组件加载,这意味着我不能在某些组件之间包装导航条,当我把导航条放在交换机外部时,它就工作了,我可以只检查props.match.location等是否为“/”而不加载到主页上,所以我找到了一个解决方法,但是是什么导致了这个错误,我怀疑我的野性路线,但不是100%确定是什么。 我在哪里使用导航栏 const App = () => { return (

我正在设置一个基本的导航栏,它只有一些按钮,没有任何复杂的日志或任何东西。当我把这个导航条放在交换机内部时,没有其他组件加载,这意味着我不能在某些组件之间包装导航条,当我把导航条放在交换机外部时,它就工作了,我可以只检查props.match.location等是否为“/”而不加载到主页上,所以我找到了一个解决方法,但是是什么导致了这个错误,我怀疑我的野性路线,但不是100%确定是什么。 我在哪里使用导航栏


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。有关更多信息,请参阅。