将多个变量传入 Apollo Query 组件
Passing in multiple variables into an Apollo Query component
const GET_DOG_PHOTO = gql`
query Dog($breed: String!) {
dog(breed: $breed) {
id
displayImage
}
}
`;
const DogPhoto = ({ breed }) => (
<Query query={GET_DOG_PHOTO} variables={{ breed }}>
{({ loading, error, data }) => {
if (loading) return null;
if (error) return `Error!: ${error}`;
return (
<img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
);
}}
</Query>
);
我正在查看文档,我可以看到他们已经在查询组件的变量 属性 中传递了一个名为 breed 的道具。如果查询带2个参数怎么办,如何传入2个参数?
您正在使用 ES2015 Shorthand property names。这两种语法是等价的。
<Query query={GET_DOG_PHOTO} variables={{ breed }}>
<Query query={GET_DOG_PHOTO} variables={{ breed: breed }}>
然后,如果您有一个包含 2 个参数的查询,如下所示:
const GET_DOG_PHOTO = gql`
query Dog($breed: String!, $size: Int!) {
dog(breed: $breed, size: $size) {
id
displayImage
}
}
`;
查询组件将如下所示
function DogPhoto({ breed, size }) =>
return (
<Query query={GET_DOG_PHOTO} variables={{ breed, size }}>
{({ loading, error, data }) => {
if (loading) return null;
if (error) return `Error!: ${error}`;
return (
<img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
);
}}
</Query>
)
};
const GET_DOG_PHOTO = gql`
query Dog($breed: String!) {
dog(breed: $breed) {
id
displayImage
}
}
`;
const DogPhoto = ({ breed }) => (
<Query query={GET_DOG_PHOTO} variables={{ breed }}>
{({ loading, error, data }) => {
if (loading) return null;
if (error) return `Error!: ${error}`;
return (
<img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
);
}}
</Query>
);
我正在查看文档,我可以看到他们已经在查询组件的变量 属性 中传递了一个名为 breed 的道具。如果查询带2个参数怎么办,如何传入2个参数?
您正在使用 ES2015 Shorthand property names。这两种语法是等价的。
<Query query={GET_DOG_PHOTO} variables={{ breed }}>
<Query query={GET_DOG_PHOTO} variables={{ breed: breed }}>
然后,如果您有一个包含 2 个参数的查询,如下所示:
const GET_DOG_PHOTO = gql`
query Dog($breed: String!, $size: Int!) {
dog(breed: $breed, size: $size) {
id
displayImage
}
}
`;
查询组件将如下所示
function DogPhoto({ breed, size }) =>
return (
<Query query={GET_DOG_PHOTO} variables={{ breed, size }}>
{({ loading, error, data }) => {
if (loading) return null;
if (error) return `Error!: ${error}`;
return (
<img src={data.dog.displayImage} style={{ height: 100, width: 100 }} />
);
}}
</Query>
)
};