localStorage z webpack - problem

localStorage z webpack - problem
adams0
  • Rejestracja:prawie 8 lat
  • Ostatnio:dzień
  • Postów:317
0

Cześć

Gdy dodaje taką funkcje do pliku index.js mojej aplikacji:

Kopiuj
function settState() {
  state.chapter = localStorage.getItem("chapter");
  state.paragraph = localStorage.getItem("paragraph");
  state.knownWords = localStorage.getItem("knownWords");
}
settState();

zdarzenia które wcześniej działały bez zarzutu teraz wyrzucają błąd.
Pomimo że nie są zupełnie związane z tą funkcją.
Poza webpackiem ta funkcja działa normalnie.

Czy wiecie w czym tkwi problem ?

DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
2

Sett* przez dwa "t" lepiej settuje? :D Ale wracając do tematu...

Co to za błąd i jakie funkcje?
Jak podmienisz tą funkcję na coś takiego, to błąd nadal występuje?

Kopiuj
function settState() {
  state.chapter = 'test';
  state.paragraph = 'test';
  state.knownWords = 'test';
}
settState();

* fun fact - sett to po ang. bruk

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:9 dni
  • Postów:644
3

https://github.com/standard/standard#i-use-a-library-that-pollutes-the-global-namespace-how-do-i-prevent-variable-is-not-defined-errors

W pliku package.json spróbuj dodać:

Kopiuj
{
  "standard": {
    "globals": {
        "localStorage": true
     }
  }
}

Błąd wynika z tego, że podczas budowania jak jest uruchomiony proces Node to webpack nie ma dostępu do localStorage - bo to API przeglądarki, więc musisz mu powiedzieć, żeby się o to nie martwił.

edytowany 2x, ostatnio: Markuz
DE
"żeby się o to nie martwił" - fajnie to zabrzmiało :D
adams0
  • Rejestracja:prawie 8 lat
  • Ostatnio:dzień
  • Postów:317
0

Chyba nie zrobiłem należnego research'u bo jak wpisałem po prostu w konsoli:

Kopiuj
localStorage.setItem('knownWords', ['dimorphism', 'pumpkin pie']);
a potem:
localStorage.getItem('knownWords')

To dostaje sprasowanego stringa zamiast tablicy!
Czy w local Storage można trzymać tylko stringi ???

czubeka2
  • Rejestracja:około 12 lat
  • Ostatnio:10 miesięcy
  • Postów:53
2

Tak. LocalStorage przyjmuje stringi. Aby łatwiej Ci się pracowało z LocalStorage mozesz zrobić sobie helpery:

Kopiuj
function save(key, value) {
	localStorage.setItem(key, JSON.stringify(value));
}

function load(key) {
	return JSON.parse(localStorage.getItem(key));
}

save('test', ['val1', 'val2']);
load('test');
adams0
  • Rejestracja:prawie 8 lat
  • Ostatnio:dzień
  • Postów:317
0

Zrobione. Działa jak należy. Ogromne dzięki wszystkim za pomoc. :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.