Skip to content

Instantly share code, notes, and snippets.

@Rendez
Last active July 11, 2018 09:56
Show Gist options
  • Save Rendez/b6e7834de37cce367e2cf8b718ec8bc3 to your computer and use it in GitHub Desktop.
Save Rendez/b6e7834de37cce367e2cf8b718ec8bc3 to your computer and use it in GitHub Desktop.

Revisions

  1. Rendez revised this gist Jul 11, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion SSRComponent.js
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,6 @@ class SSRComponent extends React.Component {
    throw new Error('Cannot set state in a server-side-rendered component');
    }
    forceUpdate() {
    throw new Error('Cannot set state in a server-side-rendered component');
    throw new Error('Cannot update in a server-side-rendered component');
    }
    }
  2. Rendez created this gist Jul 11, 2018.
    18 changes: 18 additions & 0 deletions SSRComponent.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    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 set state in a server-side-rendered component');
    }
    }