中继框架未捕获类型错误: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”