我正在使用Apollo Client作为前端,使用Graphcool作为后端.有两个查询firstQuery和secondQuery我希望他们在序列页面打开时调用.下面是示例代码(此处未列出TestPage组件的定义):
export default compose(
graphql(firstQuery, {
name: 'firstQuery'
}),
graphql(secondQuery, {
name: 'secondQuery' ,
options: (ownProps) => ({
variables: {
var1: *getValueFromFirstQuery*
}
})
})
)(withRouter(TestPage))
Run Code Online (Sandbox Code Playgroud)
我需要var1在secondQuery从的结果firstQuery.我如何使用Apollo Client和编写?或者还有其他方法吗?提前致谢.
我正在尝试组合两个依赖的GraphQL查询.
第一个应该获得一个ID,第二个应该获取该ID.我读到compose的行为类似于flowRight(),但无论我放置查询的顺序如何,如果queryId低于queryDetails,则始终跳过queryDetail(如预期的那样).无论我如何将代码放在一起,变量都是未定义的.
import { graphql, compose } from 'react-apollo'
import gql from 'graphql-tag'
class Home extends Component {
constructor(props) {
super(props)
console.log("Where's my data?")
console.log(props)
}
render() {
return(
<div />
)
}
}
export const queryIdConst = gql`
query IdQuery {
account(name:"SuperAccount")
{
lists {
edges {
id
}
}
}
}
`
export const queryDataConst = gql`
query DataQuery($id: ID!) {
account(name:"SuperAccount")
{
list(id: $id) {
displayTitle
}
}
}
`
export default compose(
graphql(queryIdConst, {
name: …Run Code Online (Sandbox Code Playgroud) 我知道这已经被问了几个的时间之前,但我发现没有明确的解决方案,这是否是可能的GraphQL。我强烈认为这应该是可能的,因为它应该相对容易实现,因为 GraphQL 查询在 Apollo 中按顺序运行。
我有一种情况,我首先在客户端上执行 GraphQL 突变,然后在执行使用上一个查询结果的查询之后立即执行。这会导致等待服务器响应两个请求的响应时间过长。请求如下所示:
mutation createWebSession($authId: ID!) {
webSession: createWebSession(authId: $authId) {
token
userId
}
}
query listUserPaymentMethods($userId: ID!) {
userPaymentMethods: paymentMethods(userId: $userId) {
id
}
}
Run Code Online (Sandbox Code Playgroud)
我知道一种避免两次往返服务器的简单创可贴解决方案是创建一个新的单一 GraphQL 突变端点,该端点在后端执行这两项服务。但这似乎违背了编写模块化、可重用 GraphQL 端点的目的。因此,我很好奇是否有人知道 Apollo GraphQL 是否支持一种更简洁的方式来链接 2 个请求,其中前一个请求的结果可作为输入提供给下一个请求。
任何帮助将不胜感激,谢谢。