일부 refetchQueries를 트리거해야하는 몇 가지 변이가 있지만 기본이 아닌 fetchPolicy를 갖는 쿼리가 필요합니다.apollo-client 쿼리에서 fetchPolicy를 전역으로 설정하는 방법은 무엇입니까?
쿼리 당 대신 fetchPolicy을 전역으로 설정하는 방법이 있습니까? 따라서 각 쿼리에서 fetchPolicy를 설정하지 않는 것이 좋습니다.
일부 refetchQueries를 트리거해야하는 몇 가지 변이가 있지만 기본이 아닌 fetchPolicy를 갖는 쿼리가 필요합니다.apollo-client 쿼리에서 fetchPolicy를 전역으로 설정하는 방법은 무엇입니까?
쿼리 당 대신 fetchPolicy을 전역으로 설정하는 방법이 있습니까? 따라서 각 쿼리에서 fetchPolicy를 설정하지 않는 것이 좋습니다.
이제 가능합니다!
const defaultOptions = {
watchQuery: {
fetchPolicy: 'cache-and-network',
errorPolicy: 'all',
},
query: {
fetchPolicy: 'cache-and-network',
errorPolicy: 'all',
},
mutate: {
errorPolicy: 'all',
},
};
const client = new ApolloClient({
link,
cache,
defaultOptions,
});
참조 문서 : Setup and options
불행히도 클라이언트에 대한 기본 정책을 설정하는 방법이 문서화되어 있지 않다고 생각합니다. 실제로 최근에 약 making the default configurable에 대한 대화가있었습니다.
그러나 당분간 graphql
컨테이너에 대한 간단한 래퍼를 만들어 동일한 결과를 얻을 수 있습니다. 이런 식으로 뭔가 작업을해야합니다 :
const DEFAULT_FETCH_POLICY = 'network-only'
export const graphqlWrapper = (query, config = {}) => {
if (!config.options) config.options = {}
if (config.options instanceof Function) {
const optionsFn = config.options
config.options = (props) => {
const options = optionsFn.apply(optionsFn, [props])
options.fetchPolicy = options.fetchPolicy || DEFAULT_FETCH_POLICY
return options
}
} else {
config.options.fetchPolicy = config.options.fetchPolicy || DEFAULT_FETCH_POLICY
}
return graphql(query, config)
}
은 그럼 그냥 래퍼 대신
graphql
컨테이너를 가져옵니다. 또한 필요한 경우 개별 쿼리에 대해 설정 한 기본값을 재정의 할 수 있습니다.