Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应-更改可以在任何地方打开的模式的URL_Javascript_Reactjs_React Router_React Redux - Fatal编程技术网

Javascript 反应-更改可以在任何地方打开的模式的URL

Javascript 反应-更改可以在任何地方打开的模式的URL,javascript,reactjs,react-router,react-redux,Javascript,Reactjs,React Router,React Redux,我是React的新手,我被要求在一个已经完成的应用程序中实现这个功能。所以,我不想破坏一切 我有一个包含登录/注册/激活/密码恢复/密码重置组件的模式,根据情况而定。此模式可以出现在每个公共页面上。可以在模式中导航,从登录到注册,从登录到密码恢复,从密码重置到登录。 我们可以从he标题中的链接和通过站点的其他链接访问modal。模态显示为动画过渡 我被要求根据显示的模式内容更改URL URL必须是: site.com/en/login site.com/en/register site.com

我是React的新手,我被要求在一个已经完成的应用程序中实现这个功能。所以,我不想破坏一切

我有一个包含登录/注册/激活/密码恢复/密码重置组件的模式,根据情况而定。此模式可以出现在每个公共页面上。可以在模式中导航,从登录到注册,从登录到密码恢复,从密码重置到登录。 我们可以从he标题中的链接和通过站点的其他链接访问modal。模态显示为动画过渡

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

URL必须是:

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/[…]
或主页在直接URL访问/刷新时默认显示在模式后面,模式后面的页面也应保持不变

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

我现在没有令人信服的代码来显示


如果这有帮助的话,这是一个在NodeJS服务器上使用JSX的React Redux应用程序

如果您的组件通过路由器呈现,您可以使用
history.push()
,否则您可以使用
react Router dom
中的
withRouter
包装组件,然后使用
history.push()


如果这两种方法都不起作用,您仍然可以从浏览器左侧的
窗口
中找到
位置
对象,请尝试….

也许“历史”库可以轻松帮助您

从“历史记录/createBrowserHistory”导入createHistory
const history=createHistory()
历史。聆听((位置、动作)=>{
//位置是类似于window.location的对象
console.log(操作,location.pathname,location.state)
})
import { withRouter } from 'react-router'

const myComponent = () => {

   ...

}

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