Позволит ли модуль условного экспорта его обновить? - PullRequest
0 голосов
/ 14 июня 2019

В настоящее время я пытаюсь реализовать темный режим в приложении, и мне было интересно, могу ли я условно экспортировать компонент цвета и обновить его во всем приложении.

Я не создавал это приложение, есть более 250 таблиц стилей, которые ссылаются на этот файл цвета, поэтому наличие условных обозначений в каждом из них не является жизнеспособным решением.

В настоящее время оно экспортируется какэто

  Alto: '#DADADA',
  Black: '#000000',
  BlackSemiTransparent: 'rgba(0, 0, 0, 0.5)',
  BlackFaded: 'rgba(0, 0, 0, 0.84)',
  Blue500: '#007DBA',
  Blue600: '#005F8E',
  Blue700: '#005077',
  Blue800: '#007AFF', ... }

export default colors; 

, но если бы я сказал, например,

    if(state.darkTheme) {
    colors = { dark theme colors }
}

, чтобы он обновлял цвета во всем приложении, или он не будет повторно импортироваться?

Еслинет, есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 14 июня 2019

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

Я бы предложил сделать что-то вроде

export default state => {
  if (state.darkTheme) {
    return { dark theme colors };
  } else {
    return { light theme colors };
  }
};

А затем использовать ваши цвета, например

import colors from './colors';

const red = colors(state).red;

Это ни в коем случае не единственный способ сделать это, это просто способ, которым я хотел бы.

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