Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/capthiron/graphql-request-react

React wrapper for graphql-request
https://github.com/capthiron/graphql-request-react

client fetch graphql react reactjs request wrapper

Last synced: about 2 hours ago
JSON representation

React wrapper for graphql-request

Awesome Lists containing this project

README

        

# graphql-request-react

[![npm version](https://badge.fury.io/js/graphql-request-react.svg)](https://badge.fury.io/js/graphql-request-react)

React wrapper for [graphql-request](https://www.npmjs.com/package/graphql-request). 💣

## Install
`yarn add graphql-request-react`

or

`npm install graphql-request-react`

## Quickstart
Send a GraphQL query to render an image of Pikachu âš¡. [Try the demo âž¡](https://bit.dev/capthiron/graphql-request-react/demo)

```jsx
const App = () => {
const url= 'https://graphql-pokemon.now.sh'

const query = `{
pokemon(name: "Pikachu") {
image
}
}`

return (

{"pokemon"}
}
/>
)
}
```

## Import
```jsx
import Request from 'graphql-request-react'
```

## Examples
#### Providing variables for a query
```jsx
const query = `getPokemon($name: String!) {
pokemon(name: $name) {
image
}
}`

return (

{"pokemon"}
}
/>
)
```

#### Adding HTTP header
```jsx

{"pokemon"}
}
/>
```

#### Handling Loading
You can add a loading function that will be used for rendering during the fetching process.
```jsx

{"pokemon"}
}
/*Add loading function*/
loading={() =>

Loading Pikachu from Pokedex...

}
/>
```

#### Handling Errors
You can add a error function that will be used for rendering in case of an error.
```jsx

{"pokemon"}
}
/*Add error function*/
error={(err) =>

Couldn't find Pikachu in Pokedex because of {err.message}!

}
/>
```

## Props
| Name | Required | Description | Type |
|-------------|----------|------------------------------------------------------------------------------------------------------|----------|
| `url` | **Yes** | Url of the graphql endpoint | String |
| `query` | **Yes** | Graphql query | String |
| `render` | **Yes** | Render function that gets the requested `data` passed in as an object | Function |
| `loading` | No | Render function during loading stage | Function |
| `error` | No | Render function in case of an error | Function |
| `variables` | No | Object that provides the variables to a given query | Object |
| `options` | No | Object that contains [fetch options](https://www.npmjs.com/package/fetch#options) like http-headers. | Object |

#### More coming soon...
- Example for mutations
- Trigger function