私はバグに気がつきました。あるいは、私がバグであると信じているのは、説明が難しいlocalStorageですが、試してみます。localStorageはリフレッシュするまで未定義を返しますか?
私は単純なローカルショッピングカートを書いています。物事が正常に動作するためには、ストレージがすでに存在するかどうかを確認し、ストレージアレイが空でない場合は空の配列を入れてください。
ただし、このチェック後も、2回目にページを更新するまで、localStorageは未定義のままです。以下のコードを参照してください:
const cart = function(name) {
this.storageNamespace = name;
this.get = store.get(this.storageNamespace);
};
cart.prototype.set = function (data) {
store.set(this.storageNamespace, data);
}
cart.prototype.add = function (item) {
if (this.get === undefined) {
store.set(this.storageNamespace, []);
}
let cart = this.get;
if (cart.length !== 0) {
for (let i = 0; i < cart.length; i++) {
if (cart[i].id === item.id) {
cart[i].ammount = Number(cart[i].ammount) + Number(item.ammount);
this.set(cart);
break;
} else if (i === cart.length - 1) {
cart.push(item);
this.set(cart);
break;
}
}
} else {
cart.push(item);
this.set(cart);
}
}
いくつかのものがあります。はい、this.getは未定義です。私はコンソールからテストしました。したがって、私はif文の中のコードがなぜ動いていないのかを理解していません。 if文をコンストラクタを含むいくつかの場所に配置しました。どこでも同じ動作。
2回目の訪問でもすべて正常に動作します。
真と評価すると思われるにもかかわらず、何もしていないコード明確にすることです:
if (this.get === undefined) {
store.set(this.storageNamespace, []);
}
es6スコープ変数を使用しているので、クラスを行うこともできます。ストレージ変数、それは何ですか? 'localStorage'または' sessisionStorage' – Akxe
Store.js、V2です。 – Niels
次にstore.jsの設定を表示します。そして何よりも、これは 'localStorage'自体ではなく、ライブラリでエラーになるかもしれません。 – Akxe