Как избежать вызова конструктора при изменении маршрута? - PullRequest
0 голосов
/ 24 сентября 2019

Я работаю над приложением, которое использует webSocket (socket.io).У меня Layout компонент с инициализацией соединения webSocket внутри constructor:

export default class Layout extends Component {
  constructor(props) {
    super(props);
    
    this.props.initWebSocket();
  }

  render() {
    return (
      <div style={layoutStyle}>
      <Header />
      {this.props.children}
    </div>
    )
  }
}

Затем я обертываю каждую страницу компонентой Layout:

export default function Games() {
  return (
    <Layout>
      <p>Page with games</p>
    </Layout>
  );
}

Проблема в том, что при изменении страницы initWebSocket() вызывается снова.Я хочу избежать повторной инициализации, установить ее только при первой загрузке.

Я прочитал раздел «Использование общих компонентов» из официальной документации и подумал, что это поможет мне.Это возможно с next.js?

1 Ответ

0 голосов
/ 24 сентября 2019

Это возможно с помощью пользовательского компонента App - документация

Просто создайте файл '_app.js' внутри папки 'pages' и поместите туда логику инициализации.

...