如何仅在重新获取时调用查询

时间:2018-01-17 02:28:05

标签: reactjs graphql apollo

我想知道是否有办法在反应组件中调用查询而不使用graphql连接组件,因为它导致组件在第一次安装时启动查询。

所以基本上有办法避免默认调用吗?

1 个答案:

答案 0 :(得分:3)

如果您手动需要控制查询或变异而不使用graphql() HOC中的默认行为,请使用withApollo。它将GraphQL API客户端对象作为prop。

注入组件

客户端有.query.mutate作为方法。因此,您可以在this.props.client.query(...)componentDidMount进行操作。

import { withApollo } from 'react-apollo';

class Thing extends Component {
    componentDidMount() {
        this.props.client.query(myQuery).then(data => {
            this.setState({ data });
        };
    }
}

export default withApollo(Thing);