How to avoid getting error 'localStorage is not defined' on server in ReactJS isomorphic app? How to avoid getting error 'localStorage is not defined' on server in ReactJS isomorphic app? reactjs reactjs

How to avoid getting error 'localStorage is not defined' on server in ReactJS isomorphic app?


You could use a check whether the code is being executed on the server or on the client side by checking whether module is not 'undefined':

var isNode = typeof module !== 'undefined'

You can then proceed to only executed this code on the client side:

if(!isNode){   //use the local storage   var myItem = localStorage.getItem(itemTitle)}

However, you should already always check whether Storage is defined before using since not all browsers support it:

if(typeof(Storage) !== "undefined"){   //use the local storage}


Standard has specific support for problems like this.

All you need to do is add a comment informing standard that there is a variable provided by the global scope.

// MyStuff.js/* global localStorage */// Use localStorage below with no linter errors