我正在尝试使用react-router( 版本^ 1.0.3 )重定向到另一个视图,这让我很累。
import React from 'react';
import {Router, Route, Link, RouteHandler} from 'react-router';
class HomeSection extends React.Component {
static contextTypes = {
router: PropTypes.func.isRequired
};
constructor(props, context) {
super(props, context);
}
handleClick = () => {
console.log('HERE!', this.contextTypes);
// this.context.location.transitionTo('login');
};
render() {
return (
<Grid>
<Row className="text-center">
<Col md={12} xs={12}>
<div className="input-group">
<span className="input-group-btn">
<button onClick={this.handleClick} type="button">
</button>
</span>
</div>
</Col>
</Row>
</Grid>
);
}
};
HomeSection.contextTypes = {
location() {
React.PropTypes.func.isRequired
}
}
export default HomeSection;
我所需要的只是将使用发送到’/ login’就是这样。
我能做什么 ?
控制台错误:
未捕获的ReferenceError:未定义PropTypes
用我的路线归档
// LIBRARY
/*eslint-disable no-unused-vars*/
import React from 'react';
/*eslint-enable no-unused-vars*/
import {Route, IndexRoute} from 'react-router';
// COMPONENT
import Application from './components/App/App';
import Contact from './components/ContactSection/Contact';
import HomeSection from './components/HomeSection/HomeSection';
import NotFoundSection from './components/NotFoundSection/NotFoundSection';
import TodoSection from './components/TodoSection/TodoSection';
import LoginForm from './components/LoginForm/LoginForm';
import SignupForm from './components/SignupForm/SignupForm';
export default (
<Route component={Application} path='/'>
<IndexRoute component={HomeSection} />
<Route component={HomeSection} path='home' />
<Route component={TodoSection} path='todo' />
<Route component={Contact} path='contact' />
<Route component={LoginForm} path='login' />
<Route component={SignupForm} path='signup' />
<Route component={NotFoundSection} path='*' />
</Route>
);
对于简单的答案,您可以使用Link
来自的组件react- router
,而不是button
。有一些方法可以更改JS中的路由,但是似乎您在这里不需要。
<span className="input-group-btn">
<Link to="/login" />Click to login</Link>
</span>
要在1.0.x中以编程方式执行此操作,您需要在clickHandler函数中这样做:
this.history.pushState(null, 'login');
取自此处的升级文档
您应该通过this.history
放置在路由处理程序组件上react- router
。如果它的子组件低于routes
定义中提到的子组件,则可能需要将其进一步传递
我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档
问题内容: 我有一个庞大的Django网络应用程序,其中的一个模块(“仪表板”)用node和react编写。用户登录由Django模块处理。 用户应该登录到主应用程序才能访问react仪表板,这部分起作用-代码从浏览器获取用户会话,并且仅在有内容的情况下呈现内容。 我现在想在没有会话的情况下将用户重定向到应用主登录页面,但是我不知道如何使用当前结构(和该血腥的v4路由器)进行操作。 我在Brows
如何从我的脚本代码重定向到另一个vue页面。我正在使用router.push(),但无法重定向到我想要的vue页面。 以下是我的源代码。 src/路由器/索引。js src/components/IndexPage。vue 运行此代码后,我得到一个错误,它表明: ReferenceError:评估时未定义路由器 src/main。js 此外,我还可以通过浏览器访问相同的链接http://local
我卡住了。我不能在我的请求后重定向我的用户。 有我的请求(在组件中): 有人有什么建议可以帮我找到解决办法吗?
问题内容: 两者都有路由,链接等。何时使用一个或另一个?我真的很困惑在哪里使用每个。服务器端?客户端? https://reacttraining.com/react-router/ 在某些示例中,您需要传递历史记录,而在其他示例中则不需要。该怎么办? 与 何时使用一个或另一个非常令人困惑,任何帮助都值得赞赏。 问题答案: react-router 包含 react-router-dom 和 re
问题内容: 我正在使用React Router v4并尝试实现一项功能,无论用户单击什么路由,他都会进入登录页面,即如果他尚未登录。 但登录后,他被重定向到他尝试在登录前访问的同一页面 我已经使用以下代码设法对其中的两条路线进行了此操作,但不确定这是否是最佳方法 现在,尽管这可以正常工作,但我不想为所有不同的路线重复一次相同的代码。所以有更好的方法吗? 现在,注销后,它什么也没显示,我希望它显示登