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);
3 Réponses :
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é:
Mais encore, c'est juste un sucre syntaxique
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
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.
À 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.
Bonjour Monika, vous devez publier votre code pour que nous puissions vous aider.