关于 react-rounter 4.1.1的问题

来源:9-1 路由配置

joya0

2017-05-24

<Route path='/search/:category(/:keyword)' component={Search}/>

(/:keyword)是选填参数,可有可没有

hashHistory.push('/search/all/' + encodeURIComponent(value)),进行页面的跳转


但我的react-router 是4.1.1的版本,没有hashHistory和(/:keyword)是选填参数,我应该怎样实现?

hashHistory.push('/search/all/' + encodeURIComponent(value))  改成 location.href = xxx 么?那路由这块应该怎么写呢?

写回答

2回答

落在起风的地方

2017-05-24

仅供参考哈 https://github.com/Hydraz320/react-dp-webapp/blob/master/docs/react-routerV4%E5%8F%AF%E9%80%89URL%E7%9A%84%E7%94%A8%E6%B3%95.md

0
1
joya0
非常感谢!
2017-05-24
共1条回复

joya0

提问者

2017-05-24

<HashRouter>

                <Switch>

                        <Route path="/" exact component={Home}/>

                        <Route path="/city" component={City}/>

                        <Route path="/search/:category" exact strict component={Search}/>

                        <Route path="/search/:category/:keyword" component={Search}/>

                        <Route path="/detail/:id" component={Detail}/>

                        <Route component={NotFound}/>

                </Switch>

</HashRouter>


我路由是这样写的

0
3
joya0
回复
落在起风的地方
谢谢你,我看了你写的react-routerV4如何改变路由.md,更改我很搓的代码(loaction.href=xxx更改成 history.push(xxx)),你说的『这里需要记录的是 如果我用history.push 确实是可以调到带:id参数的页面,然而如果在浏览器里直接输入相应url 是会爆炸的 原因我还不懂……』,用 BrowserRouter直接输入 url 页面不显示,如果换成 HashRouter 就可以了,其中的原理我也不是很清楚,哈。。。
2017-05-25
共3条回复

React高级实战 打造大众点评Web App

已经对React Router4与Webpack2进行了项目升级

1711 学习 · 707 问题

查看课程