Смена темы не постоянна Ваадин - PullRequest
0 голосов
/ 09 октября 2018

Я меняю тему на ui.setTheme("theme-name").Он прекрасно работает, пока я не изменю страницу, а затем вернется к странице по умолчанию.Как сделать его постоянным?

Каждый класс страницы имеет аннотацию @Theme с именем темы по умолчанию, взятым из Spring * application.yml.

1 Ответ

0 голосов
/ 10 октября 2018

Это происходит потому, что каждый раз, когда в браузер загружается новая страница (т. Е. Не только переключается с одного вида на другой с помощью, например, Навигатора), создается новый экземпляр пользовательского интерфейса.Этот экземпляр пользовательского интерфейса будет использовать тему по умолчанию, если кто-то не запустит явно setTheme("some-theme") снова.

Существует несколько различных подходов к исправлению этой проблемы в зависимости от того, насколько устойчивой должна быть тема.

Один из подходов - добавить @PreserveOnRefresh к вашему UI подклассу.Это позволит повторно использовать предыдущий экземпляр пользовательского интерфейса при перезагрузке или временном переходе на другой сайт.Он не сохранит пользовательский интерфейс и настройки темы, если пользователь закроет вкладку браузера и позже откроет новую.

Другой подход заключается в том, что вы явно сохраняете выбор темы пользователя где-то, а затем вручную применяете эту настройку.например, UI.init или после того, как пользователь вошел в систему. Два наиболее очевидных кандидата для его сохранения находятся в файле cookie или в базе данных пользователя.

...