0
在我的數據庫我有不同的藏品,可以綁在他們的ID's
,所以我可以顯示一些event(s)
。但有一個集合,我似乎無法與其他集合匹配。匹配館藏與他們的ID從數據庫
一個集合稱爲事件和每個事件包含的unit
一個屬性:包含相同ObjectId
而且我也有locks
(單位)的集合:
所以我的目標是能夠將lock
(單位)與正確的事件進行匹配。在我的React和Redux應用程序中,我有一個路線,我想將正確的事件顯示到正確的lock
(單位)。在我的路由器我有這樣的:
<AuthRoute path="/log/:lockId" component={LockDetails} />
然後在我的父母是應該顯示列表我有這樣的:
class LockDetails extends Component {
render() {
const lockId = this.props.match.params.lockId // Getting the ID from endpoint
const locks = this.props.locks || [] // All locks(units) from Redux store
const lock = locks.find(lock => { // Getting the correct lock form my params
return lock._id === lockId
})
然後向下傳遞:
<LockLog lock={lock}/>
但在這裏它變得棘手。我想知道如何編寫代碼來獲得正確的事件到正確的lock
(單位)。
當從父級獲得lock
時,我還使用lodash
庫中的keyBy
。
const keyedLocks = keyBy(lock, '_id')
const mappedEvents =
events.reverse().map((event, i) => {
var driver = event.driver ? keyedDrivers[event.driver] : false
var carrier = driver ? keyedCarriers[driver.carrier] : false
var customer = event.customer ? keyedCustomers[event.customer] : false
var lock = event.unit ? keyedLocks[event.unit] : false // Tried something here, but it didn't go so well....
return (
<div>
<EventItem
key={i}
event={event}
customer={customer}
carrier={carrier}
driver={driver}
lock={keyedLocks[event.unit] || { address: {} }}
/>
</div>
)
})
這與我的其他端點數據的匹配我的lock
(單位)進展順利,但不能與事件(一個或多個)。後「öppnade啪」
所以沒有lock
(單位):所以我想一些幫助,因爲這被輸出的唯一事情是這樣的。