将变量传递到 useQuery 钩子时遇到一个奇怪的问题。
查询:
const GET_USER_BY_ID= gql`
query($id: ID!) {
getUser(id: $id) {
id
fullName
role
}
}
`;
Run Code Online (Sandbox Code Playgroud)
调用查询:
const DisplayUser: React.FC<{ id: string }> = ({ id }) => {
const { data, error } = useQuery(GET_USER_BY_ID, {
variables: { id },
});
return <div>{JSON.stringify({ data, error })}</div>;
};
Run Code Online (Sandbox Code Playgroud)
渲染组件:
<DisplayUser id="5e404fa72b819d1410a3164c" />
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
"Argument \"id\" of required type \"ID!\" was provided the variable \"$id\" which was not provided a runtime value."
Run Code Online (Sandbox Code Playgroud)
从 GraphQL Playground 调用查询返回预期结果:
{
"data": …Run Code Online (Sandbox Code Playgroud)