首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React -更改可在任何地方打开的模式的URL

React -更改可在任何地方打开的模式的URL
EN

Stack Overflow用户
提问于 2018-08-07 02:50:26
回答 2查看 755关注 0票数 0

我是React的新手,我被要求在一个基本完成的App中实现这个功能。所以我不想毁了一切。

我有一个根据情况包含组件login/register/activation/password-recovery/password-reset的模式。这个模式可以出现在每个公共页面上。可以在从登录到注册、从登录到密码恢复、从密码重置到登录的模式中导航。我们可以从他的标题中的链接和通过网站的其他链接访问模式。显示模式时会显示动画过渡。

我被要求根据显示的模式内容更改URL。

URL必须是:

代码语言:javascript
复制
site.com/en/login 
site.com/en/register
site.com/en/activation
site.com/en/password-recovery
site.com/en/password-reset

即使URL是site.com/en/page1/info1/[...],模式后面的页面也应该保留,或者在直接访问/刷新时,主页应该默认显示在模式后面。

我在网上找到了很多拼图的拼图,但拼图似乎不合适。我只想知道完成这项任务的最好方法。

我现在没有令人信服的代码可以展示。

如果这能有所帮助,那就是在NodeJS服务器上使用JSX的React-Redux应用程序。

EN

回答 2

Stack Overflow用户

发布于 2018-08-07 03:07:45

如果您的组件是通过路由器呈现的,您可以使用history.push(),或者您可以使用react-router-domwithRouter包装您的组件,然后使用history.push()

代码语言:javascript
复制
import { withRouter } from 'react-router'

const myComponent = () => {

   ...

}

// by this history is  going to be available from props in this component
export default withROuter(myComponent) 

如果这两个都不起作用,你仍然有来自浏览器左侧windowlocation对象,试一下……

票数 0
EN

Stack Overflow用户

发布于 2018-08-07 04:30:40

也许“历史”库可以帮助你轻松地https://www.npmjs.com/package/history

代码语言:javascript
复制
import createHistory from 'history/createBrowserHistory'
const history = createHistory()

history.listen((location, action) => {
    // location is an object like window.location
    console.log(action, location.pathname, location.state)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51713935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档