多重阿波罗突变
Posted
技术标签:
【中文标题】多重阿波罗突变【英文标题】:Multiple Apollo mutations 【发布时间】:2017-03-23 04:50:10 【问题描述】:我按照Apollo documentation 在单个 React 组件上提供了两个突变(createUser
然后是signInUser
),但是我的代码(this.props.signInUser is not a function
)无法访问一个突变(“外部”之一 - signInUser) )。也许我启用服务器端的设置掩盖了一个突变,但我看不出在哪里。帮助表示赞赏:)
查看完整代码here。
编辑:使用compose 时出现同样的问题,请参阅code。
【问题讨论】:
【参考方案1】:这是由我的 apollo
高阶组件引起的,它比仅仅调用 Apollo 的 graphql
(与服务器端渲染相关)做了更复杂的事情,并且必须以某种方式屏蔽属性。我为这些突变绕过了这种 s-s-r 行为(不需要),请参阅code。
【讨论】:
【参考方案2】:你只需要在传递到组件时命名突变,否则它们都称为mutate
,并相互覆盖。
(通过使用props
函数)
这是一个带有命名突变的完整示例:
https://gist.github.com/Siyfion/a2e9626ed431f8ff91af2c9b8cba1d67
【讨论】:
谢谢,但我已经按照文档中的说明重命名了突变: name: 'createUser'
和 name: 'signInUser'
。如果不提供这样的名称,我相信默认是mutate
,而不是mutation
。你有关于这个 props
的 Apollo 文档的链接吗?
看后半段:dev.apollodata.com/react/mutations.html#calling-mutations
谢谢,我尝试使用props
,但同样的问题。我仍然怀疑它在我的服务器端渲染设置中(我的apollo
高阶组件)。以上是关于多重阿波罗突变的主要内容,如果未能解决你的问题,请参考以下文章