Apollo GraphQL:在SSR之后延迟加载数据
我有以下代码:Apollo GraphQL:在SSR之后延迟加载数据,graphql,apollostack,react-apollo,Graphql,Apollostack,React Apollo,我有以下代码: const HomeWithApollo = withApollo(compose( graphql(HOME_QUERY, { props({ data: { loading, page, fetchMore } }) { return { loading, page, fetchLocations: () => { return fetchMore({
const HomeWithApollo = withApollo(compose(
graphql(HOME_QUERY, {
props({
data: { loading, page, fetchMore }
}) {
return {
loading,
page,
fetchLocations: () => {
return fetchMore({
query: ALL_LOCATIONS_QUERY,
updateQuery: (prev, {fetchMoreResult}) => {
if (!fetchMoreResult.data) { return prev; }
return {
data: [...prev, ...fetchMoreResult.data]
};
}
})
}
};
}
})
)(Home));
在迁移到Apollo之前,我将ALL_LOCATIONS_查询作为一个同构的获取客户端加载(基本上是一个AJAX请求)。但我正在寻找阿波罗之路,我不确定我是否已经找到了。我有几个问题
- 使用
,因为我完全分开加载家庭数据和位置数据,它们是否应该放在graphql(QUERY_NAME,{options})
withApollo(compose([…此处])的
高阶组件中的单独、多个graphql
函数中graphql
- 目前,为了从
函数中获取数据,我正在执行以下操作,但有消息告诉我,这应该在状态内完成,以便Apollo知道它是用于缓存的。对此有何想法?我是否朝着正确的方向前进fetchMore
非常感谢!你有没有弄明白这一点?现在研究一下,我最初的想法是使用
@skip
指令&在组件接近滚动视图时切换变量,但我从未尝试过。
async componentDidMount(){
const { data } = await this.props.fetchLocations();
this.setState({ locations: data.allLocations });
}