当前位置:  开发笔记 > 程序员 > 正文

中继分页:如何初始化"后"值?

如何解决《中继分页:如何初始化"后"值?》经验,为你挑选了1个好方法。

所以根据这里的评论,我已经能够将一个简单的"分页"组件/容器组合在一起:https://github.com/facebook/graphql/issues/4#issuecomment-118162627

我说"黑客",因为那就是我所做的.

我通过/graphql在浏览器中查看响应的边缘游标来实现它.问题是.. 当我没有"先前的查询"工作时,如何让这个项目的第一个 "页面"工作?

我尝试离开,after因为undefined我的查询,但我只有以下错误:

未捕获的不变违规:callsFromGraphQL():预期变量的声明值为$ curs.

看来,如果定义firstafter在容器中的片段,然后他们需要的参数.但是我没有价值after,所以世界上怎么做初始化呢?

此示例抛出上面的错误:

export default Relay.createContainer(Widgets2, {
  initialVariables: {
    pageSize: 2
  },
  fragments: {
    viewer: () => Relay.QL`
      fragment on User {
        widgets(
          first: $pageSize,
          after: $curs
        ) {
          edges {
            cursor,
            node {
              id,
              name,
            },
          },
        },
      }
    `,
  },
});
//And in the React component:
nextPage () {
    let lastIndex = this.props.viewer.widgets.edges.length - 1
    this.props.relay.setVariables({
        curs: this.props.viewer.widgets.edges[lastIndex].cursor
    })
 }

Joe Savona.. 5

好问题.在Relay中,必须为所有变量提供默认值.如果该值不知道,你可以使用null:在这种情况下,这将意味着指定curs: nullinitialVariables.我们需要一个明确null的帮助确保开发人员不忘记指定值.



1> Joe Savona..:

好问题.在Relay中,必须为所有变量提供默认值.如果该值不知道,你可以使用null:在这种情况下,这将意味着指定curs: nullinitialVariables.我们需要一个明确null的帮助确保开发人员不忘记指定值.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有