2

我有这个休息应用程序可以获取这样的数据,带有用于 redux 的 thunk + promise 中间件:

export const fetchVenues = () => ({
    type: 'FETCH_VENUES',
    payload: axios.get('http://localhost:3000/mock/venues'),
});

来自这里的数据进入存储,组件使用从那里获取的数据。

我可以用 graphql 查询或其他东西交换“有效负载”中的其余请求吗?

让我困惑的是,Redux 说:“数据存在于存储中,只能通过操作来更改”,但 Apollo 将数据直接绑定到组件。我已经制作了一个 GraphQL API,在 graphiql devtool 中效果很好,但是在阅读了这篇文章之后,我对它在客户端中的处理方式有点困惑。

4

1 回答 1

3

我的理解是,在内部,apollo 使用的是 redux。基本上,它使您可以将查询与组件搭配并注入(连接)相关数据 + 函数作为道具。它还通过在请求完成时更新缓存/存储来为您管理存储。

你可以看到 ApolloProvider 是一个使用类固醇的 redux 提供者:https ://github.com/apollostack/react-apollo/blob/01425b3df5f05e7f389b36f3385433c89a39977b/src/ApolloProvider.tsx

我希望这对您的理解有所帮助。

于 2016-11-23T14:43:14.527 回答