在urql的持久化查询中,该方法未变为GET方法
经过
我们使用NestJS(兼容Fastify)开发后端,使用Next.js(App Router)开发前端,并在使用GraphQL的Persisted Queries时,在前端引入了urql。
然而,尽管尝试了官方提供的配置方法,但在发送请求时,Persisted Queries并没有生效。
版本等
"@urql/core": "^4.1.1",
"@urql/exchange-persisted": "^4.1.0",
"@urql/next": "^1.0.0",
"graphql": "^16.7.1",
"next": "13.4.7",
"urql": "^4.0.5"
做过的事情 de
由于GraphQL本身已经被引入,因此为了引入持久化查询,我在设置中添加了persistedExchange。但是,引入持久化查询之前和之后的行为没有发生变化。
createClient({
url: 'http://localhost:8080/graphql', // 例
exchanges: [
cacheExchange,
fetchExchange,
// ↓のpersistedExchangeを追記した
persistedExchange({
preferGetForPersistedQueries: true
})
]
})
總結
如果在URQL中交换机的顺序描述错误,它将无法正常工作。
这次我将fetchExchange的描述放在persistedExchange之后,成功地启用了持久化查询。
详细信息可以参考这篇文章。
以下是完成形的程式碼。
createClient({
url: 'http://localhost:8080/graphql', // 例
exchanges: [
cacheExchange,
// ↓のpersistedExchangeを追記した
persistedExchange({
preferGetForPersistedQueries: true
}),
fetchExchange // fetchExchangeをpersistedExchangeの後に記述
]
})