如何从我的 redux 操作向 GraphQL-server 发出请求?

Posted

技术标签:

【中文标题】如何从我的 redux 操作向 GraphQL-server 发出请求?【英文标题】:How to make requests to GraphQL-server from my redux action? 【发布时间】:2018-06-29 19:22:48 【问题描述】:

我有 react+redux 应用程序,我想将我的操作中的 rest-requests 替换为 grapqhl-requests。最简单的方法是什么?

我阅读了有关 apollo 的信息,但我只是想在我现有的请求中添加 graphql。

【问题讨论】:

【参考方案1】:

您必须更改获取数据的方式,因为 Apollo 是您和请求的 Api 之间的一层,您可以将多个 API 加入到一个查询调用中。 上面的示例非常简单,只是为了解释放置查询的方式以及它如何连接到 Apollo Server。您也可以将中间件设置为在添加一些标头时记录请求。

您将安装 [https://github.com/apollographql/react-apollo] 和 [https://github.com/apollographql/graphql-tag]

之后,在您的项目中创建一个连接文件来导入

graphClient.js

import  ApolloClient, createNetworkInterface  from 'react-apollo';
const networkInterface = createNetworkInterface(
  uri: 'yourserver address'
);
const client = new ApolloClient(
  networkInterface,
);
export default client;

yourRequestFile.js

import gql from 'graphql-tag';
import client from './graphClient';

export const getYourData = () => (
  query: gql`
  query 
    products() 
      info 
        value 
          qty
          value
        
      
    
  `,
);
const returnYourData = async () => client.query(getYourdata());
export default returnYourData;

【讨论】:

以上是关于如何从我的 redux 操作向 GraphQL-server 发出请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何导出 mapStateToProps 和 Redux 表单?

成功或错误后如何使用 redux thunk 重定向?

如何在 redux 状态更新时自动刷新组件

反应导航以从 redux 操作文件导航

如何从 react.js 中的 redux 存储向引导表插入数据?

React/Redux - 在应用程序加载/初始化时调度操作