мы создаем мобильное приложение, в котором реагируют как на родном языке, так и на выставке. При реализации функции темы в приложении пользователь может выбрать две основные темы. Предпочтения удерживаются на локальном БД. При загрузке приложений, получение предпочтений от локальных БД, чтобы поставить избыточный магазин и получение всей информации оттуда. Моя проблема заключается в том, что ThemeService запускается и получает начальную тему в хранилище до моего процесса componentWillMount. Это немного запутано, но позвольте мне объяснить;
Это мое git репо, которое можно проверить: https://github.com/saricabasak/keyholder/tree/feature/theme
Когда приложение загружается, мы получаем данные из БД и выписать в хранилище приставок (LoginPage. js componentWillMount). Все страницы получили стили от ThemeService. js и themeservice. js имеет функцию getstyle для каждого объекта стиля, чтобы определить, какую тему мы используем. Но Themeservice запускается еще до конструктора app. js. Журналы приведены ниже;
Проблема в том, что мы не можем установить хранилище с истинной темой до вызова службы тем. У Db есть darktheme, но код получает начальную светлую тему в магазине. Любые предложения нужны?
getStyle called with: navigator.iconColor - Theme: lightTheme
getStyle called with: navigator.indicatorColor - Theme: lightTheme
getStyle called with: navigator.backgroundColor - Theme: lightTheme
getStyle called with: login.regularButton.backgroundColor - Theme: lightTheme
getStyle called with: login.regularButton.textColor - Theme: lightTheme
getStyle called with: login.transparentButton.textColor - Theme: lightTheme
getStyle called with: home.category.backgroundColor - Theme: lightTheme
getStyle called with: home.category.iconColor - Theme: lightTheme
getStyle called with: home.category.textColor - Theme: lightTheme
getStyle called with: home.swipeRow.backgroundColor - Theme: lightTheme
getStyle called with: home.swipeRow.backgroundColor - Theme: lightTheme
getStyle called with: home.itemRow.borderBottomColor - Theme: lightTheme
getStyle called with: home.itemRow.backgroundColor - Theme: lightTheme
getStyle called with: home.itemRow.textColor - Theme: lightTheme
getStyle called with: password.button.backgroundColor - Theme: lightTheme
getStyle called with: password.button.textColor - Theme: lightTheme
getStyle called with: password.input.iconColor - Theme: lightTheme
getStyle called with: password.input.textColor - Theme: lightTheme
getStyle called with: password.input.iconColor - Theme: lightTheme
getStyle called with: password.input.placeholderColor - Theme: lightTheme
getStyle called with: password.input.textColor - Theme: lightTheme
getStyle called with: password.input.secureIconColor - Theme: lightTheme
getStyle called with: password.header.backgroundColor - Theme: lightTheme
getStyle called with: password.header.backTextColor - Theme: lightTheme
getStyle called with: password.header.titleColor - Theme: lightTheme
getStyle called with: password.generator.headerColor - Theme: lightTheme
getStyle called with: password.generator.textColor - Theme: lightTheme
getStyle called with: password.generator.textColor - Theme: lightTheme
getStyle called with: password.generator.textColor - Theme: lightTheme
getStyle called with: password.generator.borderColor - Theme: lightTheme
getStyle called with: password.generator.textColor - Theme: lightTheme
getStyle called with: password.generator.backgroundColor - Theme: lightTheme
getStyle called with: password.generator.textColor - Theme: lightTheme
getStyle called with: password.settings.backgroundColor - Theme: lightTheme
getStyle called with: password.settings.headerColor - Theme: lightTheme
getStyle called with: settings.textColor - Theme: lightTheme
getStyle called with: settings.textColor - Theme: lightTheme
getStyle called with: settings.textColor - Theme: lightTheme
getStyle called with: settings.contentColor - Theme: lightTheme
getStyle called with: settings.textColor - Theme: lightTheme
getStyle called with: settings.buttonColor - Theme: lightTheme
getStyle called with: settings.backgroundColor - Theme: lightTheme
getStyle called with: settings.textColor - Theme: lightTheme
getStyle called with: header.backgroundColor - Theme: lightTheme
getStyle called with: header.titleColor - Theme: lightTheme
getStyle called with: container.backgroundColor - Theme: lightTheme
getStyle called with: container.titleColor - Theme: lightTheme
getStyle called with: common.validInputBorder - Theme: lightTheme
getStyle called with: common.invalidInputBorder - Theme: lightTheme
getStyle called with: common.placeholderTextColor - Theme: lightTheme
getStyle called with: common.selectedColor - Theme: lightTheme
getStyle called with: common.switchTrueColor - Theme: lightTheme
getStyle called with: common.switchFalseColor - Theme: lightTheme
getStyle called with: header.backgroundColor - Theme: lightTheme
Running application on Erkan iPhone'u.
app.js constructor!
retrieveLanguageOnStorage -> "en"
retrieveThemeOnStorage -> "darkTheme"
retrieveThemeOnStorage theme: darkTheme
updating theme on store action-> darkTheme