Как сохранить данные в состоянии React после запроса из GraphQL? - PullRequest
0 голосов
/ 24 марта 2019

Мой запрос:

import React from 'react';
import getProducts from '../queries/getProduct';
import { Query } from "react-apollo";


export const Product = () => {
    const proId = {
        "productId": "95eb601f2d13"
    }

   return (
       <Query query={getProducts} variables={proId}>
        {({ loading, error, data }) => {
            if (loading) return "Loading...";
            if (error) return `Error! ${error.message}`;

            return (
                <div>
                    {data.map(entry => entry)}
                </div>
            );
        }}
       </Query>
   );
};

export default Product;

Теперь мне нужно сохранить полученные данные в React или Redux (в зависимости от того, что идеально), чтобы я мог получить доступ к этим данным в 1/2 компонента.Как я могу хранить данные вместо того, чтобы рендерить их, как это делается выше?

В зависимости от этих данных, я отрисовываю 90% компонентов.

1 Ответ

1 голос
/ 24 марта 2019

Попробуйте onCompleted так:

function onCompletedHandler(data) {
    dispatch({ 'RECEIVED_DATA': data })
}

<Query query={getProducts} variables={proId} onCompleted={onCompletedHandler}>
    ...
</Query>
...