私はreduxショッピングカートの例を再作成しようとしています。しかし、次のコード行を理解するのは難しいと思っています。「[productId]:(state [productId] || 0)+ 1」とはどういう意味ですか?
[productId]: (state[productId] || 0) + 1
私はreduxショッピングカートの例を再作成しようとしています。しかし、次のコード行を理解するのは難しいと思っています。「[productId]:(state [productId] || 0)+ 1」とはどういう意味ですか?
[productId]: (state[productId] || 0) + 1
さて、もう一度ファイルを読み込みます。 intialState
が作成されたのはここです:
const initialState = {
addedIds: [],
quantityById: {}
}
今quantityById
機能です。それはinitialState.quantityById
としてstate
として渡されます。
const quantityById = (state = initialState.quantityById, action) => {
次の行は、返すオブジェクトを構築するためにspread operator
を使用しています。
return { ...state,
[productId]: (state[productId] || 0) + 1
}
{ ...state
state
変数からのものを取ることを意味、これはすべてのプロパティは、新しいオブジェクトになります意味します。その後[productId]: (state[productId] || 0) + 1
は、このidがstate
オブジェクトでなかった場合は合格state
オブジェクトstate[productId]
または0
からの値に[productId]
の値を設定し、それに1
を追加します。
state
オブジェクトからコピーされた後に、state
オブジェクトまたは更新が渡されていない場合は、全体でこの行に[productId]
が追加されます。
さらに詳しい情報はspread operator
にあります。
希望すると便利です。
キーは変数productIdの値です。値は(状態[productId]または状態[productId]がfalseの場合は0)+ 1 –
私のガラス球は[計算されたプロパティ名](https:// developer .mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names)と[論理演算子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators)... – ASDFGerte
'ガラスボール' - 良い仕事を続けて、結局あなたはクリスタルを買う余裕ができます:p –