我可以让react路由器只覆盖一些url,并将其余的url正常传递给服务器吗
Can I make react-router cover only some urls and pass rest of the urls normally to the server?
我为react-router
定义了一些路由。我不希望所有其他路由都像没有react-router
一样正常地通过服务器。
如果我只是不指定这些路由,当页面加载时,我会收到一个警告:"警告:[反应路由器]位置"/Services"与任何路由都不匹配",但我可能会遇到这种情况。
我不能忍受的是,当我在react路由器覆盖的url上,点击返回按钮返回到未覆盖的url时,它就不起作用了。我只是再次看到这个错误,服务器并没有再次被要求提供未覆盖的url。
知道如何让网站只被react路由器部分覆盖吗?
实现这一点的一种方法是手动使用react-router
,就像在服务器端一样。
# this is CoffeScript (cjsx)
window.router =
<Router history={browserHistory}>
<Route name="ServiceNotes" path="ServiceNotes/:location_id" component="ServiceNote" />
</Router>
$(document).ready ->
routes = createRoutes window.router.props.children
initialLoad = true
browserHistory.listen (location) ->
match { routes, location: location.pathname }, (error, redirectLocation, renderProps) ->
if !error && renderProps
render <RouterContext {...renderProps} />, document.getElementById('page-container')
else
console.log "Server side navigation"
if !initialLoad
window.location.reload()
initialLoad = false
- 听听历史
- 匹配路线
- 如果路由匹配,请像在服务器端一样进行渲染
- 如果没有路由匹配,在初始历史事件上什么也不做(我们刚刚来到这里),但在后续事件上从服务器重新加载当前url(历史阻止了在点击页面上的后退按钮或链接后调用服务器,但我们需要它通过,因为它是不匹配的路由,所以我们手动执行)
相关文章:
- 在URL中传递JS对象
- 在URL中传递变量
- 如何在重建URL后从URL中传递过滤值,目的是使用Angular2和Typescript实现无限滚动
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 主干.js将 url 参数传递给集合
- 通过javascript将url参数传递到多个不同的href链接中
- 我可以让react路由器只覆盖一些url,并将其余的url正常传递给服务器吗
- 我们可以在javascript url中传递GET变量吗
- 在URL中传递下拉列表的选定值
- 将多个Url参数传递给链接
- 在url中传递参数时,如何使用AJAX阻止页面刷新
- 如何使用JavaScript在URL中传递值
- 将 URL 参数传递到 Web 应用脚本中
- 将 URL 参数传递到 iFrame 源中
- 将变量作为 URL 参数传递到 xmlHTTPRequest 中
- 在 Javascript URL 中传递两个变量,以根据传递的值更新下拉列表
- 如何在 url 中传递长文件名并使用 php 函数下载文件
- JavaScript 在 URL 中传递变量,然后选择选项
- Android/ JavaScript - 在URL中传递数据
- 主干.js在不将数据作为 URL 字符串传递的情况下获取