Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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路由器v4不';t触发路由_Javascript_Reactjs_React Router_React Router Dom - Fatal编程技术网

Javascript react路由器v4不';t触发路由

Javascript react路由器v4不';t触发路由,javascript,reactjs,react-router,react-router-dom,Javascript,Reactjs,React Router,React Router Dom,我尝试使用react router v4,由于某种原因,当我使用普通链接和链接组件更改路由时,路由不会触发,但如果我直接在URL栏中访问或只是刷新页面,则该路由中的组件将呈现该组件。检查之后,我看到上下文被更新了,但是道具没有更新。如下图所示: 从“/about”路径开始,单击“/projects”链接(AboutMe组件仍在交换机中,而不是projects组件的更改)。路线的定义如下: <Switch> <Route exact path='/' component=

我尝试使用react router v4,由于某种原因,当我使用普通链接和链接组件更改路由时,路由不会触发,但如果我直接在URL栏中访问或只是刷新页面,则该路由中的组件将呈现该组件。检查之后,我看到上下文被更新了,但是道具没有更新。如下图所示: 从“/about”路径开始,单击“/projects”链接(AboutMe组件仍在交换机中,而不是projects组件的更改)。路线的定义如下:

<Switch>
    <Route exact path='/' component={Home}/>
    <Route path='/about' component={AboutMe}/>
    <Route path='/projects' component={Projects}/>
    <Route path='/contact' component={Contact}/>
    <Route component={NotFound} />
 </Switch>

我已经尝试过使用BrowserRouter、HashRouter和路由器组件,以及在交换机组件中包装/不包装路由(似乎没有任何效果)。 我已经在教程、文档、其他stackoverflow问题和回购问题中搜索了两天,到目前为止还没有找到任何东西,所以我在这里!)

我正在使用这些软件包:

  • 反应v15.5.4
  • react路由器dom v4.1.1

提前谢谢\o

看起来您也在使用Redux和React-Redux-是不是Redux(正确地)注意到存储中的状态没有更改,因此(令人困惑地)决定不重新渲染?是的,我刚刚删除了React-router Redux中所有相关的内容(React-router v4不起作用)以及将路由状态与存储同步以查看其是否有效,仍然是一样的:(我将尝试删除提供程序并查看发生了什么:)感谢您的提示!正是@WanderNauta,路由器没有看到商店的变化,所以没有更新。我已经删除了提供程序,一切正常:)因此,基本上,由于react router redux不适用于v4,我必须自己为每个路由器实施操作和还原程序:/