Вы также можете использовать троичный оператор внутри render()
, чтобы установить классы на основе темы, на которую вы бы ссылались this.state.theme
.
const classes = this.state.theme === 'dark' ? style.dark : style.light;
Затем в вашемэлемент, который вы бы использовали, например, с className
:
<View className={classes}>
Вот краткий пример jsfiddle.Измените параметр состояния со светлого на темный, и фон изменится: https://jsfiddle.net/3516s2vg/
Edit: Ok, поэтому, если вы хотите использовать более одной темы здесь, одним из вариантов может быть использование оператора switch для указанияконкретный класс.Я не эксперт по реагированию, поэтому я даже не уверен, что это будет лучшим способом для этого.Переключатель также входит внутрь render()
.
let classes = '';
switch(this.state.theme) {
case 'dark':
classes = style.dark;
break;
case 'light':
classes = style.light;
break;
case 'other':
classes = style.other;
break;
default:
classes = style.dark;
}
. И снова, чтобы использовать его, вы должны сделать <View className={classes}>
.