将集合与其数据库

时间:2017-10-17 08:53:26

标签: javascript reactjs redux

在我的数据库中,我有不同的集合,可以与ID's绑定,因此我可以显示一些event(s)。但是一个集合似乎无法与其他集合相匹配。

一个集合称为事件,每个事件都包含unit的属性:

enter image description here

我还有一个locks(单位)的集合,其中包含相同的ObjectId

enter image description here 所以我的目标是能够将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时,我也使用keyBy库中的lodash

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(单位)匹配,但与事件无关。所以我想要一些帮助,因为输出的唯一内容是:

enter image description here

“öppnadepå”之后没有lock(单位)。

1 个答案:

答案 0 :(得分:1)

您应该将lock包装到数组或对象中,例如:InvocationException: Program terminated with status: 1. stderr follows: Error: /tmp/tmpznciMx: syntax error in line 7 near '{'