import App, { Container } from 'next/app' import React from 'react' import { setState } from '../shared-module' setState(typeof window === 'undefined' ? 'UPDATED' : 'UPDATED CLIENT') class Layout extends React.Component { state = { random: false } componentDidMount () { this.setState({ random: Math.random() }) } render () { const { children } = this.props const { random } = this.state return (

Hello App

Hello HMR

{random}

{children}
) } } export default class MyApp extends App { static async getInitialProps ({ Component, router, ctx }) { // throw _app GIP err here let pageProps = {} if (Component.getInitialProps) { pageProps = await Component.getInitialProps(ctx) } return { pageProps } } render () { const { Component, pageProps } = this.props return ( ) } }