让我们假设我在React-Apollo中有以下GraphQL查询
const CurrentUserForLayout = gql`
query CurrentUserForLayout($avatarID: Int!) {
currentUser {
avatar_url(avatarID: $avatarID)
}
}
`;
const ProfileWithData = graphql(CurrentUserForLayout, {
options: { variables: { avatarID: 1 } },
})(Profile);
Run Code Online (Sandbox Code Playgroud)
现在,如果我想让我的React组件Profile更改avatarID,
我该怎么办?
我是React和GraphQl的新手,我不太明白这里的连接:
graphql(CurrentUserForLayout, {
options: { variables: { avatarID: 1 } },
})(Profile);
Run Code Online (Sandbox Code Playgroud)
我真的需要另一个父组件ProfileWithData
来传递另一个父组件avatarID吗?但是,如果ID由Profile组件操纵,我如何让Parent组件知道呢?
我正在学习graphql和react-apollo.我在我的代码中设置了一个搜索查询.我不确定如何将代码(即this.state.search)中的变量传递给我的grapnql调用.
我看过很多答案,包括这个答案,但似乎有点不同.
文档似乎也没有给出关于如何使用state作为变量的任何指导.
我的代码如下.
任何人都可以建议如何连接这两个?
import React, { Component} from 'react'
import { graphql } from 'react-apollo'
import gql from 'graphql-tag'
class Search extends Component {
constructor(props) {
super(props)
this.state = {
search: ''
}
}
updateSearch = (e) => {
this.setState({
search: e.target.value
})
}
submitSearch = (e) => {
e.preventDefault()
console.log(this.state)
}
render() {
const { search } = this.state;
return (
<form onSubmit={ this.submitSearch }>
<input
type='text'
onChange={ this.updateSearch }
value={ search …Run Code Online (Sandbox Code Playgroud)