2017-09-27 13 views
2

私は2つの変数(文字列)を還元関数に渡そうとしています。これは、コンポーネントが参照しようとしているCompany ProfileのIDを知っているため、このパターンは2か所で使用されているため、reduxを使用してデータを取得しています。アクションで還元変数に変数を渡す

componentWillMount() { 
    this.props.actions.getObject('Company', '16747fce-f0b1-422b-aa60-220c2dccac58') 
} 

:成分で

export function getObject(dataClass, dataId) { 
    return { 
    'BAQEND': { 
     types: [ 
     GET_OBJECT, 
     GET_OBJECT_SUCCESS, 
     GET_OBJECT_FAILURE 
     ], 
     payload: (db) => db.(dataClass).load(dataId) 
    } 
    } 
} 

dataClassが会社であり、dataIDはGUIDです。

私の問題は、エラーが発生してもそこに変数dataClassが表示されません。 dataIDはうまく動作します。私がpayload: (db) => db.Company.load(dataId)を変更した場合、それは動作します。

私は動作しませんでしたカップルの事を試してみた:

payload: (db) => db.dataClass.load(dataId) 
payload: (db) => db.`${dataClass}`.load(dataId) 
`payload: (db) => db.${dataClass}.load(dataId)` 
+1

'db [dataClass]'? –

+0

いいえ、ペイロード:(db)=> db [dataClass] .load(dataId)も機能しません。私はこれが私が使っている図書館と関係があるかもしれないと思う。私はちょうど各dataClassのためのアクションと減速機を作ろうと思う...幸いにも4つだけがあります。 –

答えて

1

私が正しく理解していれば、dbこの場合Company

db = { 
    Company: 'someGuid' 
} 

のキー(プロパティ)を保持するオブジェクトでありますその場合、Property accessorsを次のように使用することができます。
db[dataClass]