所以根据这里的评论,我已经能够将一个简单的"分页"组件/容器组合在一起:https://github.com/facebook/graphql/issues/4#issuecomment-118162627
我说"黑客",因为那就是我所做的.
我通过/graphql
在浏览器中查看响应的边缘游标来实现它.问题是.. 当我没有"先前的查询"工作时,如何让这个项目的第一个 "页面"工作?
我尝试离开,after
因为undefined
我的查询,但我只有以下错误:
未捕获的不变违规:callsFromGraphQL():预期变量的声明值为$ curs.
看来,如果定义first
并after
在容器中的片段,然后他们需要的参数.但是我没有价值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: null
的initialVariables
.我们需要一个明确null
的帮助确保开发人员不忘记指定值.
好问题.在Relay中,必须为所有变量提供默认值.如果该值不知道,你可以使用null
:在这种情况下,这将意味着指定curs: null
的initialVariables
.我们需要一个明确null
的帮助确保开发人员不忘记指定值.