单个组件中的多个使用查询

时间:2019-08-20 07:20:05

标签: react-native react-apollo apollo-client

我无法通过下面提到的方式使用useQuery来获取数据

const { data:data1 } = useQuery(Get_Doctor);
const {  loading, error,data } = useQuery(GET_Branch);

3 个答案:

答案 0 :(得分:0)

实际上您可以使用多个查询

Unexpected non-void return value in void function

您要做的是将多个useQuery组合到您自己的自定义钩子中:

Reference

但是,它只是一种语法糖

答案 1 :(得分:0)

const { data:doc_data } = useQuery(Get_Doctor);
const { data:branch_data, error: branch_error, loading: branch_loading } = useQuery(GET_Branch);

您只需要重命名数据字段即可使其工作。请注意,如果您有任何查询要返回它们,则必须重命名other之类的error, loading等。

答案 2 :(得分:0)

恕我直言,简单的方法是这样使用基本变量对象:

const products = useQuery(LIST_PRODUCTS);
const categories = useQuery(LIST_CATEGORY);

//...
if (products.loading) {
  console.log("Loading list of products")
} else {
  processProducts(products.data)
}

//...
if (categories.loading) {
  console.log("Loading list of categories")
} else {
  processCategories(categories.data)
}

我认为这很简单而且可读性更好。