Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apollo GraphQL:在SSR之后延迟加载数据_Graphql_Apollostack_React Apollo - Fatal编程技术网

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
    函数中
  • 目前,为了从
    fetchMore
    函数中获取数据,我正在执行以下操作,但有消息告诉我,这应该在状态内完成,以便Apollo知道它是用于缓存的。对此有何想法?我是否朝着正确的方向前进


非常感谢!你有没有弄明白这一点?现在研究一下,我最初的想法是使用
@skip
指令&在组件接近滚动视图时切换变量,但我从未尝试过。
async componentDidMount(){
  const { data } = await this.props.fetchLocations();
  this.setState({ locations: data.allLocations });
}