const unexpectedLifecycleMethods = ['componentDidMount', 'componentDidUpdate', 'componentWillUpdate', 'UNSAFE_componentWillUpdate', 'componentShouldReceiveProps', 'UNSAFE_componentShouldReceiveProps']; class SSRComponent extends React.Component { constructor(...args) { super(...args); unexpectedLifecycleMethods.forEach((methodName) => { if (this.hasOwnProperty(methodName)) { throw new Error(`Cannot declare '${methodName}' in a server-side-rendered component`); } }); } setState() { throw new Error('Cannot set state in a server-side-rendered component'); } forceUpdate() { throw new Error('Cannot update in a server-side-rendered component'); } }