5
votes

plusieurs requêtes d'utilisation dans un seul composant

Je ne parviens pas à obtenir les données en utilisant useQuery de la manière mentionnée ci-dessous

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


1 commentaires

Bonjour Monika, vous devez publier votre code pour que nous puissions vous aider.


3 Réponses :


3
votes

En effet, vous pouvez utiliser plusieurs requêtes

const queryMultiple = () => {
  const res1 = useQuery(Get_Doctor);
  const res2 = useQuery(GET_Branch);
  return [res1, res2];
}

const [
    { loading: loading1, data: data1 },
    { loading: loading2, data: data2 }
] = queryMultiple()

Ce que vous voulez faire est de composer plusieurs useQuery dans votre propre hook personnalisé:

Référence

Mais encore, c'est juste un sucre syntaxique


2 commentaires

ouais, mais quand je veux accéder aux données de la manière mentionnée ci-dessous, il est indiqué qu'undefined n'est pas un objet const Get_Doctor = gql` {getDoctorDetails (id: "033822a1-5c99-4421-93b1-bef91af89eea") {id, qualification, doctorName , utilisateur {id}}} ; const GET_Branch = gql {getBranch (id: "4a045f8c-dad6-4b05-8bd4-3aeb8f7df436") {branchName, adresse, email}} `;


eh bien, vous devriez essayer de vous assurer que vos demandes fonctionnent séparément



0
votes
const { data:doc_data } = useQuery(Get_Doctor);
const { data:branch_data, error: branch_error, loading: branch_loading } = useQuery(GET_Branch);
You just have to rename the data field to have it work. Note that you will have to rename the other fields like error, loading etc if any of your queries will be returning them.

0 commentaires

0
votes

À mon humble avis, l'approche simple utilise un objet variable de base de cette façon:

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)
}

Je pense que c'est simple et plus lisible.


0 commentaires