У меня есть базовый компонент, в котором я хочу иметь переменную уровня экземпляра, обновляемую подклассами. Единственный способ получить эту работу - добавить ее в состояние, чего я не хочу делать из-за того, что значение этой переменной НЕ связано с пользовательским интерфейсом, поэтому я не хочу запускать повторный рендеринг. .
Итак, возьмем следующий компонент:
class BaseComponent extends React.Component {
constructor(props) {
super(props);
this.params = [];
}
addParam(name) {
this.params.push(name);
}
getUrl() {//this.params is always undefined
return format("{0}?", this.constructor.name, this.params.join("&");
}
}
Итак, this.params всегда не определен, что имеет смысл, поскольку он не является частью состояния. Эта переменная связана с URL-адресом, а не с пользовательским интерфейсом, поэтому, когда значение обновляется, я не хочу запускать повторный рендеринг путем обновления состояния.
Не уверен, какой здесь лучший подход?
Варианты, о которых я знаю:
1) Добавить в состояние, которое вызовет повторный рендеринг
2) Вызов forceUpdate (), который также вызовет повторный рендеринг
Мне не нравится ни один из этих вариантов, поэтому я надеюсь, что кто-то знает, как правильно делать то, что я пытаюсь сделать.