Rav*_*rsT 6 pagination reactjs graphql graphql-js relayjs
所以根据这里的评论,我已经能够将一个简单的"分页"组件/容器组合在一起: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
})
}
Run Code Online (Sandbox Code Playgroud)
好问题.在Relay中,必须为所有变量提供默认值.如果该值不知道,你可以使用null:在这种情况下,这将意味着指定curs: null的initialVariables.我们需要一个明确null的帮助确保开发人员不忘记指定值.
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |