[英]How to pass multiple queries into refetchQueries in apollo/graphql
[英]How does Apollo-Client GraphQL refetchQueries works?
知道我們如何從refetchQueries
獲取響應數據嗎? 我從突變中獲得了查詢響應數據。
import { gql } from 'apollo-boost';
export const DONE_TASK = gql`
mutation DoneTask($taskId: ID!) {
doneTask(input: {
taskId: $taskId
}) {
task {
id
status
}
}
}
`;
import { gql } from 'apollo-boost';
export const GET_TASKS_BY_STATUS = gql`
query GetTasksByStatus($status: String!) {
getTasksByStatus(status: $status) {
edges {
node {
id
status
description
}
}
}
}
`;
const response = await client.mutate({
mutation: DONE_TASK,
variables: {
taskId: 1
},
refetchQueries: () => [{
query: GET_TASKS_BY_STATUS,
variables: {
status: "OPEN"
},
}]
});
console.log(response);
Output
data: { doneTask: { task: { id: 1, status: 'DONE'} } }
但我期望來自GET_TASKS_BY_STATUS
的響應數據。
您通過refetchQueries
重新獲取的任何查詢都應該已被某些useQuery
鈎子、 Query
組件或graphql
HOC 使用。 為了訪問與突變相同的組件內的數據,您需要利用在同一組件內重新獲取的查詢:
const { data } = useQuery(GET_TASKS_BY_STATUS, { variables: { status: 'OPEN' } })
const [mutate] = useMutation(DONE_TASK,{
variables: {
taskId: 1,
},
refetchQueries: () => [{
query: GET_TASKS_BY_STATUS,
variables: {
status: 'OPEN',
},
}],
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.