node.js - GraphqQL 发送到客户端后无法设置标头
问题描述
我已尝试查看与此问题相关的其他关于 SO 的文章,但我无法解决此问题。
我有一个graphql api,在我的UI端组件中,我这样称呼它
useEffect(()=>{
const leaders = graphQLClient.request(GetLeadersQuery)
if(leaders && leaders.leaders) {
let leadersList = JSON.parse(leaders.leaders)
setLeaders(leadersList)
}
}, [leaders])
在服务器端,这看起来像这样
leaders: (_parent, args, _context) => {
return (JSON.stringify({
name:"Jane Dooe"
}))
这是我正在使用的查询
query {
leaders
}
现在每次,我的客户端代码都被命中,我在终端中看到以下错误。
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
我的用例非常简单,但我不明白为什么会遇到这个错误。
更新 在我的客户端,我尝试执行以下操作,以确保我正在解决承诺,但我仍然得到相同的结果。
useEffect(()=>{
async function getLeaders(){
const leaders = await graphQLClient.request(GetLeadersQuery)
console.log({ leaders })
if (leaders && leaders.leaders) {
let leadersList = JSON.parse(leaders.leaders)
setLeaders(leadersList)
}
}
getLeaders()
}, [])
在我正在使用的服务器端
- NextJS
- 阿波罗服务器微
在我正在使用的客户端
- 反应
- graphql-请求
你能帮忙吗?
谢谢
解决方案
推荐阅读
- react-native - 使用 Jest 和酶测试 React Native 中的按钮单击
- mysql - 在 pythonanywhere 中将 sql 文件导入 MySQL
- javascript - 如何使用jquery获取数组值
- android - 在返回意图 ACTION_PICK 之前预览图像
- r - 如何使用 R 绘制基于分类/离散因子的分类变量的 PCA 替代方案?
- ios - 如何给精灵精确的触摸位置?
- azure - Azure SQL 数据库中的存储过程失败
- c - 如何将 swift Data 结构传递给 C 代码,反之亦然?
- c# - How to set a range for elements within an array in C#
- php - 如何使用 B 计算 A 从 B 中减去 A 得到 C?