2015-11-15 14 views

Odpowiedz

6

Można użyć sprawdzenie, czy kod jest wykonywany na serwerze lub na stronie klienta poprzez sprawdzenie, czy moduł nie jest 'undefined':

var isNode = typeof module !== 'undefined' 

Następnie można przystąpić tylko do wykonywanego tego kodu na kliencie strona:

if(!isnode){ 
    //use the local storage 
} 

jednak należy zawsze sprawdzić, czy już Storage jest zdefiniowany przed użyciem, ponieważ nie wszystkie przeglądarki obsługują go:

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

Dobra uwaga! Używam 'let browserStorage = (typeof localStorage === 'undefined')? null: localStorage; 'a następnie wewnątrz komponentu sprawdź' browserStorage'. Zastanawiam się, czy istnieje lepsze obejście tego problemu. – jvalen

0

Standard ma numer specific support w przypadku takich problemów.

Wszystko, co musisz zrobić, to dodać komentarz informujący standard, że istnieje zmienna dostarczona przez globalny zasięg.

// MyStuff.js 
/* global localStorage */ 

// Use localStorage below with no linter errors