【发布时间】:2018-01-21 10:44:53
【问题描述】:
我想知道是否有一种方法可以在 react 组件中调用查询,而无需将组件与 graphql 连接,因为它会导致组件在第一次挂载时启动查询。
那么基本上有办法避免默认调用吗?
【问题讨论】:
我想知道是否有一种方法可以在 react 组件中调用查询,而无需将组件与 graphql 连接,因为它会导致组件在第一次挂载时启动查询。
那么基本上有办法避免默认调用吗?
【问题讨论】:
如果您需要手动控制查询或突变并且不使用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);
【讨论】: