中继框架未捕获类型错误:this.props.relay.commitUpdate 不是函数

Posted

技术标签:

【中文标题】中继框架未捕获类型错误:this.props.relay.commitUpdate 不是函数【英文标题】:Relay Framework uncaught TypeError: this.props.relay.commitUpdate is not a function 【发布时间】:2016-10-20 14:10:20 【问题描述】:

我正在学习 Relay 框架和 GraphQL。我正在关注tutorial from its official website. 在该教程中,我将使用 GraphQL 突变构建游戏。游戏的目标是在 9 个方格的网格中找到隐藏的宝藏。当我在服务器上运行它时一切都很好,但是当我对其中一个网格进行点击操作时,应用程序抛出了一个错误:

Uncaught TypeError: this.props.relay.commitUpdate is not a function

从控制台的日志中,我可以清楚地看到this.props.relay中没有commitUpdate()函数,但是我很困惑,因为在Relay's playground中,我可以看到@987654327中有一个commitUpdate()函数@。

有什么想法吗?

【问题讨论】:

【参考方案1】:

@asubanovsky 与Relay Documentation 相比,Relay Starter Kit 似乎已经过时,因此更好的解决方案是将您的“react-relay”版本从 0.8.1 更新到 0.9.0,然后再更新 npm install,撤消您对Relay.Store.commitUpdate 所做的更改,您就可以开始了。

【讨论】:

您好,感谢您指出这一点。一切都按预期工作。【参考方案2】:

观察了几个小时,终于解决了这个问题。我不知道这是否是一个好的解决方案。我将this.props.relay.commitUpdate 更改为Relay.Store.commitUpdate。然后应用程序按预期运行。

【讨论】:

原来,我使用的是旧版本的 react-relay。我按照 Erick Arroyo 的回答,一切都按预期进行。

以上是关于中继框架未捕获类型错误:this.props.relay.commitUpdate 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

错误未捕获类型错误:无法读取完整日历上未定义的属性“hasTime”

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

错误:`未捕获(承诺中)类型错误:无法读取未定义的属性'doc'`

未捕获的类型错误:无法读取未定义的属性“区域”?

未捕获的类型错误未定义不是函数

未捕获的类型错误:无法读取未定义的属性 toLowerCase