Я использую ReactJS. У меня есть файл global. js, содержащий все глобальные настройки (Colors, Font и др. c). Его код выглядит примерно так:
import React from 'react';
export default class GlobalVariables extends React.Component{
static variable1 = value1;
static variable2 = value2;
//And so on...
};
В моих компонентах я использую их следующим образом
import GlobalVariables from 'filePath/GlobalVariables.js';
//And somewhere inside the component, the value is assigned as:
myComponentValue = GlobalVariables.variable1;
Проблема начинается, когда мне нужно изменить эти значения (например, допустим, что я нужно применить тематику и решить изменить параметры цвета).
Я изменил значения в компоненте, используя
GlobalVariables.variable1 = newValue;
Поскольку эти переменные не являются состояниями, компоненты не перерисовываются, пока страница не будет обновлена. Кроме того, некоторые компоненты, которые загружаются позже, принимают новое значение, при этом страница выглядит беспорядочно.
Я пытался использовать состояния, но каждый экземпляр класса может иметь разные состояния. Таким образом, изменение состояния в одном случае не повлияет на другие.
Я ищу что-то stati c (так как оно импортируется несколькими родительскими компонентами), а также наличие состояния (чтобы изменения принять немедленный эффект)