2017-10-11 3 views
0

多くの親レベルのオブジェクトに共通するownerオブジェクトプロパティがあります。それが私が一貫性のために保つ方法です。ここでは簡単な例です:変数を使用して減縮プロパティにアクセスする

猫オブジェクト:

{ 
    "id": 1, 
    "name": "Johnny", 
    "owner": { 
     "id": 123, 
     "name": "Sam", 
     "phone": "307-555-1234" 
    }, 
    "gender": "male" 
} 

Carオブジェクト:

{ 
    "id": "lkj33k3j9992jj21", 
    "make": "BMW", 
    "model": "535i", 
    "owner": { 
     "id": 123, 
     "name": "Sam", 
     "phone": "307-555-1234" 
    }, 
    "mileage": 10 
} 

私はownerのプロパティを設定します複数の減速に使用できるアクションを作成しています。私の行動は、次のようになります。

export const setOwnerProperties = (objectType, id, name, phone) => { 
    return { 
     type: types.SET_OWNER_PROPERTIES, 
     objectType, 
     id, 
     name, 
     phone 
    }; 
} 

質問は、私は私の減速でプログラムobjectTypeへのアクセス方法ですか?次のコードを試しましたが、私はstate.[action.objectType]のコードでコンパイルエラーが発生しています。

case types.SET_OWNER_PROPERTIES: 
    return Object.assign({}, state, { 
     [action.objectType]: Object.assign({}, state.[action.objectType], { 
     id: action.id, 
     name: action.name, 
     phone: action.phone 
     }) 
    }) 

どのように私は自分の状態にobjectTypeownerプロパティにアクセスすることができますか?あなたはこのやるべき

Object.assign({}, state[action.objectType], { ... }) 

は、あなたがやっている:

答えて

0

これは、あなたがプロパティ検索を行うには、ドット表記とブラケット表記法の両方を使用している奇妙に見える

Object.assign({}, state.[action.objectType], { ... }) 
+1

それが問題でした! 1ドット!問題が生じるでしょう!ありがとうございました :-) – Sam

関連する問題