我的react应用程序中有一个页面声明了一些JavaScript函数。它的结构如下:
import { api } from "events";
function call() {
//.Do something
}
在其中一个功能中,我想重定向到特定页面。
如果我的网页结构如下:
import React from "react";
export default class reactPage extends React.Component {
constructor() {
super();
}
render() {
}
}
我会重定向到这样的页面:
this.props.router.push({
pathname: '/pageName
})
但由于我的网页没有反应导入或构造函数,我无法访问props
我的问题是,有没有办法可以从我的函数中获取当前页面的props对象?
我知道我可以使用Javascript重定向,但是这会松掉所有状态和道具,所以不是我想做的事情。
我知道还有其他方法可以做到这一点,但我特别询问一个重定向,它将维护我的所有状态和道具,最好不要重新加载页面。
答案 0 :(得分:1)
如果要在React组件内部调用此函数,那么我认为我会将历史作为附加参数传递到需要它的函数中。这样,您仍然可以拨打history.push('/')
或任何您需要去的地方。在调用该函数时,您只需要记住传入历史记录。
答案 1 :(得分:1)
如果我理解正确,那么你可以通过props
& path
将该函数作为参数:
function redirectMeToSomewhere(props, path){
const data = {...}
// doing some work
// collecting data
// and then redirect
props.router.push({
pathname: path,
search: '?query=abc',
state: { detail: data }
})
}
// somewhere in component
...
redirectMeToSomewhere(this.props, 'stackoverflow.com')
...
它对你有用吗?