如何进入 Mongoose 聚居区?

rggaifut  于 2023-10-19  发布在  Go
关注(0)|答案(2)|浏览(79)

我无法访问 Mongoose 对象的填充字段。我想把它放在我的页面上。
范例:
“console.log(booking.assignedUser.first)”返回给我:
TypeError:无法读取未定义的属性(阅读“first”)
不过,就我所知这应该管用。很明显,场地就在那里。

在jsx文件中:

console.log(booking.assignedUser)


对象:

{
  etc etc

  assignedUser: { _id: new ObjectId("62f068b068802d58c8d35442"), first: 'driver' },
  etc etc
}

那么为什么我可以访问booking.assignedUser并显示数据,但booking.assignedUser.first不起作用?

xeufq47z

xeufq47z1#

因为这些值是从数据库填充的,我猜它们加载得不够快,所以它给了我这个错误。
如果我先检查以确保值存在,然后使用它,它就工作了。
我在我的应用程序中处理了很多这种类型的数据,所以我没有直接在react对象中输出jsx,而是使用一个函数来返回所有这些数据,我传入了db数据。
例如,在React组件中的输出开始处使用三进制是不够的。

{ data ?
<Form>
  <SomeStuffHere>
  <SomeMoreStuffHere>
  <Form.Control> {data.something} </Form.Control>
</Form>
: '' }

这是不够的。它仍然会出错。我不得不立即将三元放在田野上,以便它工作。
对每个字段都这样做会很麻烦,所以先把它放到函数中似乎效果更好。

yrdbyhpb

yrdbyhpb2#

很可能,您正在尝试在尚未设置数据时实现数据填充。需要确保数据已经设置。
你可以这样使用它;

booking.assignedUser && console.log(booking.assignedUser.first)

如果页面由于数据为空而无法查看组件,则需要在开始查看组件时使用此条件。

data.length > 0 && <Component>...</Component/>

相关问题