@Cruper
web-падаван

Singleton компонент на реакте?

Предоставляет ли реакт какие-нибудь механизмы для создания singleton компонента?
Чтобы вставить такие компоненты на странице, но смонтировать только один
Пробовал обернуть компонент в хок, который возвращал бы только один экземпляр
export function withSingleton (Component) {
  let instance = null;
  return (props) => {
    if (!instance) {
      instance = <Component {...props} />
    }
    return instance;
  }
}

Но глаза уже замылились и требуется взгляд со стороны
  • Вопрос задан
  • 1933 просмотра
Пригласить эксперта
Ответы на вопрос 1
GreyCrew
@GreyCrew
Full-stack developer
Нет, такого функционала в реакте нет.
Но можно самому попробовать сделать, я вижу 2 варианта - через Redux и через DOM
1) В сторе создаете булевый объект, по названию компонента, и при монтировании делаете проверку - false, иначе компонент не выводите.
2) В компоненте задайте идентификатор, и перед монтированием смотрите, существует ли такой же идентификатор, иначе не монтируйте.

Сколько слушаю о паттернах - все чаще слышу о том, что синглтон уже моветон, но мне кажется все зависит от применения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы