Reactjs 为什么我的反应路线即使使用精确道具也不起作用?

Reactjs 为什么我的反应路线即使使用精确道具也不起作用?,reactjs,react-router-dom,Reactjs,React Router Dom,我有以下情况,其中有一个职位列表。 例如,如果您单击一篇文章,它将路由到“/posts/1”。 然而,在我下面的代码中,当我点击任何一篇文章时,我可以看到URL变为“/posts/1”,但页面立即返回到“/posts”,我无法理解为什么。 第二条路由()中的“精确”不应该确保发送的路径正确吗 //博客组件 //员额构成部分 类Posts扩展组件{ 状态={ 员额:[], selectedPostId:null }; 组件willmount(){ axios.get()https://jsonp

我有以下情况,其中有一个职位列表。 例如,如果您单击一篇文章,它将路由到“/posts/1”。 然而,在我下面的代码中,当我点击任何一篇文章时,我可以看到URL变为“/posts/1”,但页面立即返回到“/posts”,我无法理解为什么。 第二条路由()中的“精确”不应该确保发送的路径正确吗

//博客组件
//员额构成部分
类Posts扩展组件{
状态={
员额:[],
selectedPostId:null
};
组件willmount(){
axios.get()https://jsonplaceholder.typicode.com/posts/')
。然后((响应)=>{
this.setState({posts:response.data.slice(0,4)});
});
}
onPostSelected=(id)=>{
this.props.history.push('/posts/'+id);
}
render(){
让posts=this.state.posts.map((post)=>{
返回(
// 
this.onPostSelected(post.id)}/>
// 
)
});
返回(
{posts}
);
}
}

导出默认职位这里的问题是,您在顶级路由上指定了确切的路径,即
/Posts
,因此内部嵌套路由将不匹配,而是重定向到
/Posts

<Switch>
    <Route path="/new-post" component={NewPost} />
    <Route path="/posts" component={Posts} />
    <Redirect from="/" to="/posts" />
</Switch>


/posts
路径中删除exact,您的代码就会工作。

您可以在沙箱中共享您的完整代码,以便我可以进行更改吗?如果需要进行更改,我仍然希望了解其行为。为什么它不给我看空白页?为什么之后它会重定向到“/posts”?好吧,既然
/posts/:id
无法匹配,因为它的父级本身不匹配,因此
posts
组件不会呈现,既然您没有提到
上的确切道具,
/posts/:id
将匹配
/
,因为
/
是此路由的前缀,因此将重定向到
/posts