- Loading...
-
- Error: {{ error.message }}
-
-
- -
- {{ user.firstname }} {{ user.lastname }}
-
-
-
-```
-
-This is very useful if the data relevant to your component is nested in the query:
-
-```js
-const { result } = useQuery(gql`
- query getMessages {
- currentUser {
- messages {
- id
- text
- }
- }
- }
-`)
-
-const messages = useResult(result, null, data => data.currentUser.messages)
-```
-
-Another perk of `useResult` is that the picking function will silence errors inside the picking function. For example, if `result.value` is `undefined`, you don't have to add additional checks:
-
-```js
-// You don't need to do this!
-const messages = useResult(result, null, data => data && data.currentUser && data.currentUser.messages)
-
-// Instead do this:
-const messages = useResult(result, null, data => data.currentUser.messages)
-```
-
-::: tip
-Don't forget that `messages.value` can still be `null` until the query successfully completes!
-:::
-
-Another use case where `useResult` proves to be very useful is when you have multiple objects on the result data:
-
-```js
-const { result } = useQuery(gql`
- query getUsersAndPosts {
- users {
- id
- email
- }
-
- posts {
- id
- title
- }
- }
-`)
-
-const users = useResult(result, null, data => data.users)
-
-const posts = useResult(result, null, data => data.posts)
-```
-
-Look how we cleanly separated the result data into two different `Ref`!
-
-### Automatic picking
-
-If there is only one object in the data, `useResult` will automatically try to pick the object:
-
-```js{12}
-const { result, loading } = useQuery(gql`
- query getUsers {
- users {
- id
- firstname
- lastname
- email
- }
- }
-`)
-
-const users = useResult(result)
-```
-
-Here `users.value` will be the `users` array retrieved from our server.
-
-### Default value
-
-Let's say we want to sort our users on their last names:
-
-```vue{2,19-21,24,34,35}
-
-
-