小编Nic*_*ord的帖子

Apollo Client 没有读取使用 useQuery 钩子传入的变量

将变量传递到 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)

reactjs graphql apollo-client

6
推荐指数
1
解决办法
2645
查看次数

标签 统计

apollo-client ×1

graphql ×1

reactjs ×1