Я пытаюсь уменьшить свою панель навигации с помощью переменной isCollapse в моем sessionStorage. При нажатии на кнопку, сессия можно изменить, но рендер не обновляется.
Код JSX
{
sessionStorage.getItem("collapse") === "true" ?
<div className="LeftMenu" style={{
width: 45,
float: "left",
height: "100%",
borderRight: "1px solid #dfe4e8",
textAlign: "left",
}}>
<div className="tableElement">
<FontAwesomeIcon icon={faHome} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faTasks} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faUsers} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faTh} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faArchive} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faCopy} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faNewspaper} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faDownload} className="icon" />
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faFingerprint} className="icon" />
</div>
</div>
:
<div className="LeftMenu" style={{
width: "12%",
float: "left",
height: "100%",
borderRight: "1px solid #dfe4e8",
textAlign: "left",
minWidth: 200
}}>
<div className="tableElement">
<FontAwesomeIcon icon={faHome} className="icon" /> Home
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faTasks} className="icon" /> Organisations
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faUsers} className="icon" /> Users
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faTh} className="icon" /> Templates Library
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faArchive} className="icon" /> Audit Trail
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faCopy} className="icon" /> Data Copy
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faNewspaper} className="icon" /> VAT Reporting
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faDownload} className="icon" /> Download add-in
</div>
<div className="tableElement">
<FontAwesomeIcon icon={faFingerprint} className="icon" /> Account
</div>
</div>
}
Я не знаю, если это лучший способ сделать это, но если я установил для sessionStorage значение true и вручную переосмыслил sh, это работает.
edit 1: Я пытался использовать ComponentDidMount функция выглядит следующим образом:
componentDidMount = () => {
this.setState({
isCollapse: sessionStorage.getItem("collapse")
}, () => { console.log(this.state.isCollapse) })
}
, но она тоже не работает
edit 2: Я не указал, но моя функция onClick и мой рендер не находятся в сохранить файл, у меня есть кнопка, чтобы уменьшить боковую панель в другом компоненте, и я хочу сохранить это изменение на всем моем веб-сайте, поэтому я использую sessionStorage