app.js
import { Redirect } from 'react-router-dom'
async componentDidMount() {
try{
const urlToken = new URL(window.location)
const authToken = urlToken.searchParams.get('auth_token')
console.log('MATCH ',authToken)
const tokenUser = await getTokenUser(authToken)
console.log('tokenUser', tokenUser.status)
if(tokenUser.status == 200) {
this.setState({ toHome: true })
}
}catch(error){console.log('NOT')}
}
render(){
if(this.state.toHome == true) {
return <Redirect to='/dashboard' />
}
}
答案 0 :(得分:1)
componentDidMount
的目的不是返回React元素。如果要在此处重定向用户,则必须programmatically。
答案 1 :(得分:0)
您必须记住的一件事是,重定向应该是渲染方法中返回的JSX的一部分。 您必须在组件中创建一个render方法。如果要在重定向之前检查某些内容,也可以有条件地返回。看起来像这样:
render () {
return (
<div>
{(condition) && <Redirect />}
</div>)