当我使用react-router 0.13.3时,没关系:我正在更改网址并且没有重新加载过渡。
现在,在react-router 2.0中,如果我手动更改网址,我的应用会完全重新加载而不是简单的重定向。 我该如何解决?
我想用这个:
<Link to="/routename">link</Link>
而不是这个:
import {Router, Route, IndexRoute} from "react-router";
import App from './components/App';
import FrontPage from './components/frontPage/FrontPage';
import User from './components/user/User';
module.exports = (
<Router>
<Route path="/" component={App}>
<IndexRoute component={FrontPage}/>
<Route path="/user/:userid" component={User}/>
</Route>
</Router>
);
在少数特殊情况下。
{{1}}
答案 0 :(得分:2)
没有解决方案。我们可以onClick
脚本或Link
。
答案 1 :(得分:1)
通常是由于某些错误,使用DevTools(Shift + CTRL + I)在chrome上运行网页。在控制台启用保留日志(保留日志)并查看发生了什么,您可能会看到一些错误,解决它,它应该无需刷新。
答案 2 :(得分:0)
React Router v4-重定向组件
react-router v4推荐的方法是允许您的render方法捕获重定向。使用状态或道具来确定是否需要显示重定向组件。
首先,从configure: error: X11 not found but required, configure aborted.
导入Redirect
react-router
定义点击处理程序
import { Redirect } from 'react-router';
更改渲染方法,如
handleOnClick = () => {
// some action...
// then redirect
this.setState({redirect: true});
}
示例代码:
render() {
if (this.state.redirect) {
return <Redirect push to="/yourpath" />;
}
return ( <button onClick={this.handleOnClick} type="button">Button</button> );
}