acceptedhelp wantednew rule
Description
In order to be SSR compliant, you can only access browser globals such as window, document and so on, inside of componentDidMount, componentDidUpdate and componentWillUnmount
A rule could be created to avoid the use of unguarded browser globals in other lifecycle methods.
Example of a guard:
if (typeof window !== 'undefined') {
// I can use browser globals in here
}
Use of browser globals are allowed when:
- used in a guard
- used in
componentDidMount,componentDidUpdateandcomponentWillUnmount - used in
useEffectoruseLayoutEffect - used in an event handler