我有一个组件,它通过一个带有参数的查询来获取数据。我想让这个组件调用这个查询两次,使用基于道具的不同参数(所以可能以后甚至更多次)。我怎样才能做到这一点?这是我的代码示例:
...
const getUser = gql`
query getUser($last_name: String!, $first_name: String!) {
user(last_name: $last_name, first_name: $first_name) {
id
last_name
first_name
}
}
`
export default graphql(
getUser, {
options: (props)=>{
return {
variables: {
last_name: ...something from props,
first_name: ...something from props
}
}
}
})(ComponentClassName)
通常我会根据道具获取相应的用户。没关系。但现在,我想使用此组件并能够获取更多用户,而无需更改后端和更多前端。至少我需要能够通过用户要获取的道具来定义,如果是一个或多个。我怎样才能做到这一点?感谢。
答案 0 :(得分:0)
听起来你正在使用这个组件(我们称之为status = "pending","approved","rejected"
)作为另一个包含用户列表的组件(让我们称之为User
)。
我在这里看到两个解决方案:
如果UserList
查询用户列表并获取UserList
,后来将其作为道具传递给每个username
组件,您仍然可以使用User
查询。出于性能原因,并且由于您使用的是Apollo,因此启用批处理(https://dev-blog.apollodata.com/query-batching-in-apollo-63acfd859862)可能是个好主意,因为您将为每个用户进行一次查询。
您可以获取getUser
中每个User
所需的所有数据,然后将其作为道具传递下来。不会在每个UserList
组件中进行任何查询。
希望有所帮助!
答案 1 :(得分:0)