无法读取未定义的属性“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:未捕获的类型错误:无法读取未定义的属性(读取“属性”)