我正在关注反应路由的this tutorial。我设法将它连接到我的数据存储,它工作正常。Reactjs - 渲染登录组件
令我困扰的是登陆页面。我有set it up(小提琴)它的方式,当用户转到根页面时,显示链接到登录。当用户单击该登录名时,会显示登录表单组件。
我想避免点击loginlink。当用户导航到根页面时,如果他未自动登录,则显示登录组件。
这Fiddle显示我的无效尝试使其工作。 的作品以前的代码:
render() {
return (
<div>
<ul>
<li>
{this.state.loggedIn ? (
<Link to="/logout">Log out</Link>
) : (
<Link to="/login">Sign in</Link>
)}
</li>
<li><Link to="/about">About</Link></li>
<li><Link to="/dashboard">Dashboard</Link> (authenticated)</li>
</ul>
{this.props.children || <p>You are {!this.state.loggedIn && 'not'} logged in.</p>}
</div>
)
}
,这是我的尝试:
render() {
return (
<Login data={this.state} />
)
}
这实际上呈现登录组件,但会产生这个错误:
Uncaught TypeError: Cannot read property 'state' of undefined
看来它断开。
我现在打破我的头在这一段时间,任何帮助表示赞赏
感谢您的回复。当我使用你的代码时,它可以工作,但有一个转折点。成功登录后,它只显示“您已登录”。我无法访问任何其他路线,即使我在URL中键入它们......可能是什么错误? –
虐待更新我的答案 –
因为你有一个单独的auth类,你的身份验证可以在你的反应组件之外完成,你在onEnther中调用的函数已经为你处理登录流程,也就是说,如果你登陆APP 你的进入路径= /那么在哪里假设你在,否则你将永远被重定向到/登录<记录 - 您可以根据需要 –