gpt4 book ai didi

reactjs - Apollo 客户端未读取使用 useQuery Hook 传入的变量

转载 作者:行者123 更新时间:2023-12-03 13:48:49 29 4
gpt4 key购买 nike

将变量传递到 useQuery Hook 时遇到奇怪的问题。

查询:

const GET_USER_BY_ID= gql`
query($id: ID!) {
getUser(id: $id) {
id
fullName
role
}
}
`;

调用查询:

const DisplayUser: React.FC<{ id: string }> = ({ id }) => {
const { data, error } = useQuery(GET_USER_BY_ID, {
variables: { id },
});

return <div>{JSON.stringify({ data, error })}</div>;
};

渲染组件:

<DisplayUser id="5e404fa72b819d1410a3164c" />

这会产生错误:

"Argument \"id\" of required type \"ID!\" was provided the variable \"$id\" which was not provided a runtime value."

从 GraphQL Playground 调用查询会返回预期结果:

{
"data": {
"getUser": {
"id": "5e404fa72b819d1410a3164c",
"fullName": "Test 1",
"role": "USER"
}
}
}

并在不使用变量的情况下调用查询,而是对 id 进行硬编码:

const GET_USER_BY_ID = gql`
query {
getUser(id: "5e404fa72b819d1410a3164c") {
id
fullName
role
}
}
`;

const DisplayUser: React.FC = () => {
const { data, error } = useQuery(GET_USER_BY_ID);

return <div>{JSON.stringify({ data, error })}</div>;
};

还返回预期结果。

我还尝试测试一个类似的查询,该查询将 firstName: String! 作为参数,该查询也会产生一个错误,指出未向该变量提供运行时值。当在查询字符串中硬编码值时,此查询也按预期工作。

该项目已于今天启动,并使用 "apollo-boost": "^0.4.7""graphql": "^14.6.0"“react-apollo”:“^3.1.3”

最佳答案

[已解决]

在阅读堆栈跟踪时,我注意到问题是引用我用于validationRules的graphql-query-complexity。我删除了验证规则,现在一切正常!当然,我目前没有验证,但至少我可以从这里开始工作。感谢所有花时间回复的人!

关于reactjs - Apollo 客户端未读取使用 useQuery Hook 传入的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60197851/

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