如何从基于 class 的 React 组件查询 graphql 端点
How to query graphql endpint from a class based react component
Load 产品可能我们称之为钩子,其生命目的是从 graphql 后端获取数据
这是LOAD_PRODUCT的样子
import { gql } from '@apollo/client'
export const LOAD_PRODUCTS = gql`
query{
categories {
name
products {
id,
name,
inStock,
gallery,
category
}
}
}
`
import React, { Component } from 'react'
import { useQuery,gql } from '@apollo/client'
import { LOAD_PRODUCTS } from '../../graphql/productAction'
export class ProductListing extends Component {
constructor(){
super();
const {error,loading,data} = useQuery()
}
render() {
return (
<div>ProductListing</div>
)
}
}
export default ProductListing
现在我只想触发加载用户挂钩并将数据设置为不同的状态必须有一种方法可以做到这一点我在 google 上搜索但没有任何帮助我只是不能使用获取方法得到结果
您还可以使用 Query component or the HOC 查询 graphql 端点。但请注意,由于基于 class 的组件被视为遗留组件,因此不再接收任何更新。
使用查询组件:
import { Query } from '@apollo/client/react/components';
export class ProductListing extends Component {
render() {
return (
<Query query={LOAD_PRODUCTS}>
{({data}) => <div>Render data here ...</div>}
</Query>
)
}
}
使用 HOC:
import { graphql } from '@apollo/client/react/hoc';
class ProductListing extends Component {
render() {
const data = this.props.data;
return <div>Render data here ...</div>;
}
}
export default graphql(LOAD_PRODUCTS)(ProductListing);
Load 产品可能我们称之为钩子,其生命目的是从 graphql 后端获取数据
这是LOAD_PRODUCT的样子
import { gql } from '@apollo/client'
export const LOAD_PRODUCTS = gql`
query{
categories {
name
products {
id,
name,
inStock,
gallery,
category
}
}
}
`
import React, { Component } from 'react'
import { useQuery,gql } from '@apollo/client'
import { LOAD_PRODUCTS } from '../../graphql/productAction'
export class ProductListing extends Component {
constructor(){
super();
const {error,loading,data} = useQuery()
}
render() {
return (
<div>ProductListing</div>
)
}
}
export default ProductListing
现在我只想触发加载用户挂钩并将数据设置为不同的状态必须有一种方法可以做到这一点我在 google 上搜索但没有任何帮助我只是不能使用获取方法得到结果
您还可以使用 Query component or the HOC 查询 graphql 端点。但请注意,由于基于 class 的组件被视为遗留组件,因此不再接收任何更新。
使用查询组件:
import { Query } from '@apollo/client/react/components';
export class ProductListing extends Component {
render() {
return (
<Query query={LOAD_PRODUCTS}>
{({data}) => <div>Render data here ...</div>}
</Query>
)
}
}
使用 HOC:
import { graphql } from '@apollo/client/react/hoc';
class ProductListing extends Component {
render() {
const data = this.props.data;
return <div>Render data here ...</div>;
}
}
export default graphql(LOAD_PRODUCTS)(ProductListing);