useClientQuery
useClientQuery
钩子用于渲染仅读取客户端字段的查询。
Relay 编译器完全支持 客户端扩展 架构,这允许您定义本地字段和类型。
# example client extension of the `Query` type
extend type Query {
client_field: String
}
这些仅限客户端的字段不会发送到服务器,应该使用本地更新的 API 更新,例如 commitPayload
。
const React = require('React');
const {graphql, useClientQuery} = require('react-relay');
function ClientQueryComponent() {
const data = useClientQuery(
graphql`
query ClientQueryComponentQuery {
client_field
}
`,
{}, // variables
);
return (
<div>{data.client_field}</div>
);
}
参数
query
: 使用graphql
模板文字指定的 GraphQL 查询。variables
: 包含用于获取查询的变量值的 object。这些变量需要与查询中声明的 GraphQL 变量匹配。
返回值
data
: 包含从 Relay 存储中读取的数据的 object;该 object 与指定查询的形状匹配。- 数据的 Flow 类型也将匹配此形状,并包含从 GraphQL 架构派生的类型。例如,上面
data
的类型是:{| user: ?{| name: ?string |} |}
。
- 数据的 Flow 类型也将匹配此形状,并包含从 GraphQL 架构派生的类型。例如,上面
行为
- 此钩子与
fetchPolicy: store-only
的useLazyLoadQuery
一样,它不会发送网络请求。
此页面是否有用?
通过以下操作帮助我们改进网站: 回答几个简短的问题.