You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件中如何为GraphQL的useQuery传递id参数?

正确传递变量给GraphQL查询的方法

你目前的代码存在两处关键错误,以下是修正方案:

1. 修正组件接收props的方式

组件的参数是props对象,直接写(id)无法正确获取传入的id值,需要通过解构获取:

const Items = ({ id }) => {
  // 后续代码
}

2. 正确使用useQuery传递变量

ITEMS_QUERY是gql解析后的查询文档,不是可调用函数,不能直接传入id作为参数。正确做法是给useQuery传入第二个配置参数,通过variables字段传递变量:

const { data, loading, error } = useQuery(ITEMS_QUERY, {
  variables: { id } // 这里的id就是组件接收的props值
});

完整修正后的代码

const ITEMS_QUERY = gql`query GetEntry($id: ID!) {
  getEntry(id: $id) {
    id
    date
    items {
      items {
        id
        entryID
        name
        amount
        hazardRating
        createdAt
        updatedAt
      }
      nextToken
    }
    createdAt
    updatedAt
  }
}`;

const Items = ({ id }) => {
    const { data, loading, error } = useQuery(ITEMS_QUERY, {
      variables: { id }
    });

    console.log(id)

    if (loading) return "Loading...";
    if (error) return <pre>{error.message}</pre>
  
    return (
        <div className="Items">
          {/* 可根据data渲染具体内容,示例如下 */}
          {data?.getEntry && (
            <>
              <h3>条目ID: {data.getEntry.id}</h3>
              <p>日期: {data.getEntry.date}</p>
            </>
          )}
        </div>
      );
}

内容的提问来源于stack exchange,提问作者Julius Goddard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:02:42