从GraphQL查询后如何将数据存储在React状态?

问题描述 投票:0回答:1

以下是我的查询:

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 Components中访问这些数据。如何存储数据而不是像上面那样呈现数据?

根据这些数据,我正在渲染90%的组件。

reactjs redux react-apollo apollo-client graphql-js
1个回答
1
投票

像这样尝试onCompleted

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

<Query query={getProducts} variables={proId} onCompleted={onCompletedHandler}>
    ...
</Query>
© www.soinside.com 2019 - 2024. All rights reserved.