Im trying to create my first spa in react. I read that redirect in spa can be done with component. At most cases, it works well, but i faced up with odd thing:
import React, {Component} from 'react';
import {Link, Route} from 'react-router-dom';
import axios from 'axios';
import {Redirect} from 'react-router-dom';
import jwt from 'jsonwebtoken';
export default class Head extends Component{
constructor(props){
super(props);
this.state = {
user: jwt.decode(localStorage.getItem('jwt')),
redirect: '',
}
}
componentWillUpdate(nextProps, nextState){
console.log(nextState.user, jwt.decode(localStorage.getItem('jwt')))
if( !!nextState.user !== !!jwt.decode(localStorage.getItem('jwt')))this.setState({user:jwt.decode(localStorage.getItem('jwt'))})
}
render(){
console.log(this.state.redirect, 'redirect');
return(
<div>
<h1>head</h1>
<h3>{this.state.user ? 'Hello ' + this.state.user.userName : null}</h3>
{this.state.user ?
<ul>
<li><Link to={'/profile/' + this.state.user.userName}>{this.state.user.userName}</Link></li>
<li><button onClick={this.handleLogOut.bind(this)}>Log out</button></li>
<li><Link to='/chat'>Enter the chat</Link></li>
</ul>
:
<ul>
<li><Link to='/login'>Log in</Link></li>
</ul>
}
{this.state.redirect ? <Redirect to='/login'/> :console.log( 'hellllooooo')}
</div>
)
}
handleLogOut(){
axios({
method: 'get',
url: location.origin + '/api/logout',
headers:{'Authorization': 'Bearer ' + localStorage.getItem('jwt')}}
).then((res) => {
localStorage.removeItem('jwt');
this.setState({user: null, redirect: '/login'});
})
}
}
Sometimes just doesn't work. I mean, it just do nosing. Whan I change to console.log everything works right. Can someone give me a piece of advice?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
я сейчас делаю бота для Discord и я абсолютно нигде не смог найти нормального человеческого объяснения того как работает описание прав для голосового...
Плохо знаю регулярные выраженияУ меня есть форма в Angular 5, для полей есть различные способы валидации, один из них Validators