我正在關注反應路由的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 你的進入路徑= /那麼在哪裏假設你在,否則你將永遠被重定向到/登錄<記錄 - 您可以根據需要 –