如何使用轮询方法获取新边缘?

时间:2016-02-01 11:45:57

标签: ecmascript-6 relayjs

我正在尝试进行无限滚动,只需增加第一个值就可以正常工作。但是,我想在开头之前获取新的边缘。如果没有强行取力,我怎么能这样做?

这是我的RelayContainer,其中firstLoad和afterFirst使用别名引用具有不同参数的相同连接。 Relay之前不会查询任何内容。我还从graphql服务器端强制将hasNextPage和hasPreviousPage设置为true

中继如何决定是否从服务器获取新边缘

table.on('select.dt', function() {
   var array = [];
   table.rows('.selected').every(function(rowIdx) {
      array.push(table.row(rowIdx).data())
   })   
   console.log(array);
})

1 个答案:

答案 0 :(得分:2)

我已成功解决了我的要求,创建了一个新的字段,该字段在光标/时间戳之后返回新项目,并手动维护用于显示的数据数组,由来自中继的数据填充。

一个关键点是将变量与一些随机数据连接起来,以便setVariables向服务器而不是缓存发出请求。

startPolling() {
  this._timer = setTimeout(() => {
    this.props.relay.setVariables({
      lastCreatedAt: `${this._lastCreatedAt}:${new Date().getTime()}`,
    });
    this.startPolling();
  }, 5000);
}