我使用像this類似的代碼在我的應用程序將用戶重定向登錄後的代碼如下所示:陣營路由器V4使用聲明重定向勿使電流分量
import React, { Component } from 'react'
import { Redirect } from 'react-router'
export default class LoginForm extends Component {
constructor() {
super();
this.state = {
fireRedirect: false
}
}
submitForm = (e) => {
e.preventDefault()
//if login success
this.setState({ fireRedirect: true })
}
render() {
const { from } = this.props.location.state || '/'
const { fireRedirect } = this.state
return (
<div>
<form onSubmit={this.submitForm}>
<button type="submit">Submit</button>
</form>
{fireRedirect && (
<Redirect to={from || '/home'}/>
)}
</div>
)
}
}
工作正常時,成功登錄已被觸發。但是有這種情況,即登錄用戶進入登錄頁面,應自動重定向到「主頁」頁面(或任何其他頁面)。
如何在不呈現當前組件的情況下使用重定向組件(並且據我瞭解discouraged)必須推送歷史記錄(例如,在componentWillMount
中)?
您正在使用錯誤的方法。重定向不應該在組件內單獨使用。相反,您必須將您的組件與「重定向」一起放入「路由」中。請參閱[官方文檔](https://reacttraining.com/react-router/web/api/Redirect)中的示例。 – hindmost
謝謝,是的,我的方法有點不對。我現在已將我的所有路由和重定向到我的路由器中定義。 – Jankapunkt