Reactjs 当给定参数时,反应路由器不工作

Reactjs 当给定参数时,反应路由器不工作,reactjs,react-router,Reactjs,React Router,在这里找不到问题,可能是打字错误,但我想我已经按照文档进行了操作 index.js: ReactDOM.render( <Router history={hashHistory}> <Route path="/" component={App}></Route> <Route path="/match:id" component={MatchFeedComponent}></Route> <Route

在这里找不到问题,可能是打字错误,但我想我已经按照文档进行了操作

index.js:

ReactDOM.render(
  <Router history={hashHistory}>
    <Route path="/" component={App}></Route>
    <Route path="/match:id" component={MatchFeedComponent}></Route>
    <Route path="/user" component={UserPageComponent}></Route>
    <Route path="/comments" component={CommentHolderComponent}></Route>
    <Route path="/post-talk" component={AddTalkComponent}></Route>
    <Route path="/add-match" component={AddMatchComponent}></Route>
  </Router>,
  document.getElementById('app')
);
ReactDOM.render(
,
document.getElementById('app')
);
在我的

<Link to={{ pathname:"/match/", query: {id: this.id}}}>

我得到:
[react router]Location”/match/?id=-KXKIhpF8mdWDn9C5Tnd“不匹配任何路由


它在没有任何参数的情况下可以正常工作,但现在找不到它。

React路由器通常无法处理“常规查询”,至少在设置时是这样。您的路由器需要类似于
/match/-KXKIhpF8mdWDn9C5Tnd
的内容,而不是
/match/?id=-KXKIhpF8mdWDn9C5Tnd
。尝试将此链接作为您的
链接

<Link to={`/match/${this.id}`}>

然后将路线更改为:

<Route path="/match/:id" component={MatchFeedComponent}></Route>

React路由器通常不能处理“常规查询”,至少不能处理您的设置方式。您的路由器需要类似于
/match/-KXKIhpF8mdWDn9C5Tnd
的内容,而不是
/match/?id=-KXKIhpF8mdWDn9C5Tnd
。尝试将此链接作为您的
链接

<Link to={`/match/${this.id}`}>

然后将路线更改为:

<Route path="/match/:id" component={MatchFeedComponent}></Route>

如果希望“id”成为查询字符串参数,则它不应出现在路由中。更改为:

<Route path="/match" component={MatchFeedComponent}></Route>

…然后从组件内部的props.location.query中提取id

如果希望“id”成为查询字符串参数,则它不应出现在路由中。更改为:

<Route path="/match" component={MatchFeedComponent}></Route>

…然后从组件内部的props.location.query中提取id