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

后端 未结 2 885
面向向阳花
面向向阳花 2020-12-10 04:01

I was using localStorage in my webApp to store data on client side. But when I\'ve tried to make the app isomorphic, this causes an issue. Due to node is not browser environ

2条回答
  •  无人及你
    2020-12-10 04:28

    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
    }
    

提交回复
热议问题