javascript - Legg til nestede felt i cache typePolicies - Apollo v3
Jeg lurer på om det er mulig å ha nestede verdier ved bruk av typePolicies i InMemoryCache. Foreløpig kan du definere flate felter policies.
new InMemoryCache({
typePolicies: {
Query: {
fields: {
hello: {
read() {
return 'hello'
},
},
hola: {
read() {
return 'hola'
},
},
},
},
},
})
// query flat local field using apollo
const QUERY_USER_PAGE = gql`
query UserPage {
hello
hola
}
`
Hva om jeg ønsker å ha typePolicies som reflekterer strukturen til appen min, noe som ser ut til å være god praksis.
En flat struktur vil ha begrensninger når det gjelder skalering og vedlikehold for store prosjekter.
new InMemoryCache({
typePolicies: {
Query: {
fields: {
userPage: {
hello: {
read() {
return 'hello'
},
},
hola: {
read() {
return 'hola'
},
},
},
},
},
},
})
// query nested local field using apollo:
const QUERY_USER_PAGE = gql`
query UserPage {
userPage @client {
hello
hola
}
}
`
Svar #1
Du må legge til en policy i UserPage i stedet for i Query
new InMemoryCache({
typePolicies: {
UserPage: {
fields: {
hello: {
read() {
return 'hello'
},
},
hola: {
read() {
return 'hola'
},
},
},
},
},
})
