Я использую redux-sessionstorage для хранения подмножества состояния моего приложения в хранилище сеансов.Часть этого состояния указывает, развернуты или свернуты определенные панели в пользовательском интерфейсе (видимые или скрытые).
У меня есть образец приложения, воспроизводящий именно это: https://github.com/shawninder/sessionstorage-bug
См. Файл readme для полногошаги воспроизведения.
Также размещено в Интернете здесь (дайте ему возможность разморозиться)
Проблема возникает, когда я перезагружаю страницу.redux-sessionstorage правильно восстанавливает предыдущее состояние из sessionstorage и запускает рендеринг, однако атрибут стиля, который я использую для скрытия и отображения, не обновляется.
Другими словами, это работает, как и ожидалось:
<p>showNotice: {props.app.showNotice ? 'true' : 'false'}</p>
Я вижу showNotice: false
при загрузке страницы, но он сразу же заменяется на showNotice: true
, когда redux-sessionstorage восстанавливает сохраненное состояние.
Но следующее не работает:
<div
className='notice'
style={{
opacity: props.app.showNotice ? 1 : 0,
transform: props.app.showNotice ? 'translateX(0)' : 'translateX(-100%)'
}}
>
Notice!
</div>
Страница загружается со скрытым уведомлением (как и ожидалось), но не отображается, когда redux-sessionstorage восстанавливает состояние.На самом деле, он не отображается, пока я дважды не нажму кнопку переключения, первый раз, чтобы установить showNotice
обратно на false
, а затем второй раз, чтобы установить его на true
и показать <div>
.
Почему redux-sessionstorage не обновляет здесь атрибут style
, и как люди обычно справляются с этим?