import React, { Component } from 'react';
import { Link, withRouter } from "react-router-dom"
import { connect } from "react-redux"
import { compose } from "redux"
class Header extends Component {
handleLogout = (event) => {
event.preventDefault()
localStorage.clear()
this.props.history.push("/")
}
render() {
// const token = this.props.authReducer.user && this.props.authReducer.user.user.token
return (
<div style={{ display: "flex", justifyContent: "space-between" }}>
<div>
App
</div>
<div>
{
localStorage.token ?
<div>
<Link to="/">Home</Link>
<Link to="/login">Sign in</Link>
<Link to="/register">Sign up</Link>
<button onClick={this.handleLogout}>Logout</button>
</div>
:
<div>
<Link to="/">Home</Link>
<Link to="/login">Sign in</Link>
<Link to="/register">Sign up</Link>
</div>
}
</div>
</div>
);
}
}
const mapStateToProps = (store) => {
return store
}
export default compose(
withRouter,
connect(mapStateToProps)
)(Header);
После входа в систему требуется некоторое время, чтобы получить ответ и, следовательно, токен в localStorage, поэтому я получаю это, нет? Мне нужно один раз обновить sh, чтобы отобразить его в заголовке.
Кроме того, я попытался использовать избыточное хранилище, но после обновления избыточное хранилище не сохраняется.