У меня есть панель приложения Material-UI:
import React from 'react'
import AppBar from 'material-ui/AppBar'
import AccountCircle from 'material-ui-icons/AccountCircle'
import Toolbar from 'material-ui/Toolbar'
import IconButton from 'material-ui/IconButton'
import HomeIcon from 'material-ui-icons/Home'
import Button from 'material-ui/Button'
import auth from './../auth/auth-helper'
import {Link, withRouter} from 'react-router-dom'
const isActive = (history, path) => {
if (history.location.pathname == path)
return {color: '#c61054'}
else
return {color: '#ffffff'}
}
const Menu = withRouter(({history}) => (
<AppBar position="static">
<Toolbar>
<Link to="/">
<IconButton aria-label="Home" style={isActive(history, "/")}>
<HomeIcon/>
</IconButton>
</Link>
{
auth.isAuthenticated() && (<span style={{ marginLeft: "auto" }}>
<Link to="/issues">
<Button style={isActive(history, "/issues")}>Issues
</Button>
</Link>
<Link to="/users">
<Button style={isActive(history, "/users")}>Users
</Button>
</Link>
<Link to="/signup">
<Button style={isActive(history, "/signup")}>Create User
</Button>
</Link>
</span>)
}
{
!auth.isAuthenticated() && (<span style={{ marginLeft: "auto", marginRight: -12 }}>
<Link to="/signin">
<Button style={isActive(history, "/signin")}>Sign In
</Button>
</Link>
</span>)
}
{
auth.isAuthenticated() && (<span style={{ marginLeft: "auto", marginRight: -12 }}>
<Link to={"/user/" + auth.isAuthenticated().user._id}>
<IconButton aria-label="MyProfile" style={isActive(history, "/user/" + auth.isAuthenticated().user._id)}>
<AccountCircle/>
</IconButton>
</Link>
<Button color="inherit" onClick={() => {
auth.signout(() => history.push('/'))
}}>Sign Out</Button>
</span>)
}
</Toolbar>
</AppBar>
))
export default Menu
При выходе из системы все выглядит как положено.Значок Home
находится слева, а SIGNIN
справа:
![enter image description here](https://i.stack.imgur.com/AnYuY.png)
Затем я вхожу и снова, все какхотел бы.Значок Home
, ISSUES
, USERS
и CREATE USER
находятся слева, а значок Profile
и SIGNOUT
- справа:
![enter image description here](https://i.stack.imgur.com/CkFoG.png)
Если я затем обновлю страницу, ISSUES
, USERS
и CREATE USER
перейдут в центр страницы:
![enter image description here](https://i.stack.imgur.com/5QQEL.png)
Как мне предотвратить это?Должен ли я попробовать добавить какое-то условие в isActive, чтобы установить это?Возможно, я мог бы передать left
или right
в вызове функции и в зависимости от того, какой именно стиль можно установить на кнопке.Есть мысли по этому поводу?