data => UI
this.setState();
const GET_DOGS = gql` query Dogs { dogs @rest(type: "DogsPayload", path: "/dogs") { dogs { name } } } `;
const DogsList = () => ( <Query query={GET_DOGS}> {({ loading, error, data }) => { if (loading) return 'Loading...'; if (error) return `Error! ${error.message}`; return ( <ul> {data.dogs.map(dog => ( <li key={dog.name}>{dog.name}</li> ))} </ul> ); }} </Query> );
const AddDogButton = () => ( <Mutation mutation={ADD_DOG}> {addDog => ( <button onClick={() => { addDog({ variables: { name: 'Bits' }}); }} > Add Bits ! </button> )} </Mutation> );
const ADD_DOG = gql` mutation addDog($name: name!) { addDog(name: $name) @rest(type: "Dog", path: "dogs", method: "POST") { name } } `;
// Tell React Cache how to fetch your data const DogsResource = createResource(fetchDogs); const DogsList = () => { const dogs = DogsResource.read(); return ( <ul> {dogs.map(dog => ( <li key={dog.name}>{dog.name}</li> ))} </ul> ); }; const App = () => ( <React.Suspense fallback={<Spinner />}> <DogsList /> </React.Suspense> );
const GET_DOGS = gql` query Dogs { dogs @rest(type: "DogsPayload", path: "/dogs") { dogs { name } } } `; const { loading, error, data } = useQuery(GET_DOGS);
🤷♂️ trading performance issue for cache issue