2017-09-27 6 views
2

두 개의 변수 (문자열)를 redux 액션으로 전달하려고합니다. 이 구성 요소의 목적은 조회하려는 Company Profile의 ID를 알고 있으며이 패턴이 몇 곳에서 사용되기 때문에 redux를 사용하여 해당 데이터를 가져 오는 것입니다. 구성 요소에서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)가 작동하지 않습니다. 나는 이것이 내가 사용하고있는 도서관과 관련이있을 것이라고 생각한다. 나는 각 데이터 클래스에 대해 액션과 감속기를 만들 것이라고 생각합니다 ... 다행히도 단지 4 개가 있습니다. –

답변

1

를 내가 제대로 이해하고는, db이 만약 Company

db = { 
    Company: 'someGuid' 
} 

의 키 (속성)를 보유하는 객체입니다 그렇다면 다음과 같이 Property accessors을 사용할 수 있습니다.
또는 db[dataClass]