【问题标题】:How to call a query only on refetch如何仅在重新获取时调用查询
【发布时间】:2018-01-21 10:44:53
【问题描述】:

我想知道是否有一种方法可以在 react 组件中调用查询,而无需将组件与 graphql 连接,因为它会导致组件在第一次挂载时启动查询。

那么基本上有办法避免默认调用吗?

【问题讨论】:

    标签: reactjs graphql apollo


    【解决方案1】:

    如果您需要手动控制查询或突变并且不使用graphql() HOC 中的默认行为,请使用withApollo。它将 GraphQL API 客户端对象作为道具注入到您的组件中。

    客户端有.query.mutate 作为方法。所以你可以在componentDidMount 中做this.props.client.query(...)

    import { withApollo } from 'react-apollo';
    
    class Thing extends Component {
        componentDidMount() {
            this.props.client.query(myQuery).then(data => {
                this.setState({ data });
            };
        }
    }
    
    export default withApollo(Thing);
    

    【讨论】:

    • 你,我喜欢你。
    • 编辑:导入是 import { withApollo } from 'react-apollo'
    猜你喜欢
    • 2020-08-25
    • 2018-10-14
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 2022-06-14
    • 2019-12-13
    • 2019-12-09
    相关资源
    最近更新 更多