gpt4 book ai didi

javascript - 解构值 nextjs : ReferenceError: Cannot access 'XXX' before initialization

转载 作者:行者123 更新时间:2023-12-02 22:12:30 31 4
gpt4 key购买 nike

我正在将 Apollo Client 与 Nextjs 结合使用,并希望解构值以便于阅读。

我正在尝试在 pages/index.js

中执行此操作
import { useQuery } from '~/lib/apollo'
return {
const { data: { allAwards = []} = {} } = useQuery(allAwards) //ReferenceError: Cannot access 'allAwards' before initialization
.....
}

lib/apollo

export const useQuery = function(query) {
const { enqueueSnackbar } = useSnackbar()
const { options = {} } = sortParams([...arguments])
const { loading, data: queryData, error, refetch } = HookQuery(query, {
fetchPolicy: 'cache-and-network',
...options,
})
let transformData = {}
if (queryData) transformData = new ApolloClass(queryData).start()
if (error && !options.noError) hookLogger(enqueueSnackbar, error)
return {
queryData,
error,
loading,
data: transformData,
refetch,
}
}

数据

{
data: {
allAwards: []
}
}

最佳答案

您正在使用解构赋值从 useQuery Hook 返回的值中声明一个名为 allAwards 的变量,然后尝试将同一变量传递给钩。正如错误所示,在声明变量之前不能使用变量。

const { data: { allAwards = []} = {} } = useQuery(allAwards)
^ this ^ same as this

没有理由首先使用查询结果作为 useQuery 中的第一个参数 - 该值应该始终是 DocumentNode 对象(这是当您使用 gql 标记模板)。也许您在某个地方存在命名冲突?

关于javascript - 解构值 nextjs : ReferenceError: Cannot access 'XXX' before initialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515532/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com