无法读取未定义的属性“insertOnMatch”-TypeScript

Posted

技术标签:

【中文标题】无法读取未定义的属性“insertOnMatch”-TypeScript【英文标题】:Cannot read property 'insertOnMatch' of undefined - TypeScript 【发布时间】:2021-11-20 14:04:45 【问题描述】:

我正在使用 TypeScript 在 mongoose 中创建一个匹配/播放器模块。 我创建了这个 insertOnMatch 函数来使用 mongoose findOneAndUpdate 函数将播放器添加到我的匹配模式中,但是我在尝试在 mongo 中更新该文档时收到了 UnhandledPromiseRejectionWarning

完整的错误代码:

(node:508) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'insertOnMatch' of undefined

insertOnMatch函数

  private async insertOnMatch (matchId: String, playerId: String): Promise<void> 
    await Match.findOneAndUpdate( matchId: matchId ,  $push:  matchPlayers:  playerId: playerId, playerRefererMatchId: matchId   )
  

create函数

public async create (req: Request, res: Response): Promise<Response> 
    const newPlayerConfig = 
      playerId: generatedPlayerId,
      playerMatchRefererId: req.params.matchId
    

    const newPlayer = await Player.create(newPlayerConfig)

    this.insertOnMatch(newPlayer.playerMatchRefererId, newPlayer.playerId).catch(err =>  console.error(err) )

    return res.json(newPlayer)
  

【问题讨论】:

【参考方案1】:

据我了解,您尝试使用 this 在功能组件上调用 insertOnMatch。它是未定义的,因为没有类实例。 accessing the 'this' keyword in a react functional component

【讨论】:

以上是关于无法读取未定义的属性“insertOnMatch”-TypeScript的主要内容,如果未能解决你的问题,请参考以下文章

带有 Ionic 4 的 SQLite?无法读取未定义类型错误的属性“then”:无法读取未定义的属性“then”

`无法读取未定义的属性(读取'组件')`

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

使用地图时反应'无法读取未定义的属性'

如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?

查询返回错误“无法读取未定义的属性(读取'节点')”